summaryrefslogtreecommitdiff
path: root/app/workers/update_merge_requests_worker.rb
blob: afc47fc63d65d5cb371462619848f23c53c22d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class UpdateMergeRequestsWorker
  include Sidekiq::Worker
  include DedicatedSidekiqQueue

  LOG_TIME_THRESHOLD = 90 # seconds

  def perform(project_id, user_id, oldrev, newrev, ref)
    project = Project.find_by(id: project_id)
    return unless project

    user = User.find_by(id: user_id)
    return unless user

    # TODO: remove this benchmarking when we have rich logging
    time = Benchmark.measure do
      MergeRequests::RefreshService.new(project, user).execute(oldrev, newrev, ref)
    end

    args_log = [
      "elapsed=#{time.real}",
      "project_id=#{project_id}",
      "user_id=#{user_id}",
      "oldrev=#{oldrev}",
      "newrev=#{newrev}",
      "ref=#{ref}"
    ].join(',')

    Rails.logger.info("UpdateMergeRequestsWorker#perform #{args_log}") if time.real > LOG_TIME_THRESHOLD
  end
end