summaryrefslogtreecommitdiff
path: root/app/workers/update_merge_requests_worker.rb
blob: 74bb999327501bd02e15401df047e75b389b16c9 (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
class UpdateMergeRequestsWorker
  include ApplicationWorker

  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