Class: Sidekiq::Pausable
- Inherits:
-
Object
- Object
- Sidekiq::Pausable
- Defined in:
- lib/sidekiq/pausable.rb
Overview
server middleware that will reschedule work whenever Sidekiq is paused
Instance Method Summary collapse
- #call(worker, msg, queue) ⇒ Object
-
#initialize(delay = 5.seconds) ⇒ Pausable
constructor
A new instance of Pausable.
Constructor Details
#initialize(delay = 5.seconds) ⇒ Pausable
Returns a new instance of Pausable.
125 126 127 |
# File 'lib/sidekiq/pausable.rb', line 125 def initialize(delay = 5.seconds) @delay = delay end |
Instance Method Details
#call(worker, msg, queue) ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/sidekiq/pausable.rb', line 129 def call(worker, msg, queue) if sidekiq_paused?(msg) && !(Jobs::RunHeartbeat === worker) worker.class.perform_in(@delay, *msg["args"]) else start = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = yield duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start DiscourseEvent.trigger(:sidekiq_job_ran, worker, msg, queue, duration) result end end |