2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-08-20 18:52:44 +08:00
discourse/lib/sidekiq/discourse_event.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

25 lines
674 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class Sidekiq::DiscourseEvent
def call(worker, msg, queue)
start_time = clock_gettime
result = yield
trigger_discourse_event(event_name: :sidekiq_job_ran, worker:, msg:, queue:, start_time:)
result
rescue => error
trigger_discourse_event(event_name: :sidekiq_job_error, worker:, msg:, queue:, start_time:)
raise error
end
private
def trigger_discourse_event(event_name:, worker:, msg:, queue:, start_time:)
duration = clock_gettime - start_time
DiscourseEvent.trigger(event_name, worker, msg, queue, duration)
end
def clock_gettime
Process.clock_gettime(Process::CLOCK_MONOTONIC)
end
end