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.
123 124 125 |
# File 'lib/sidekiq/pausable.rb', line 123 def initialize(delay = 5.seconds) @delay = delay end |
Instance Method Details
#call(worker, msg, queue) ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/sidekiq/pausable.rb', line 127 def call(worker, msg, queue) if sidekiq_paused?(msg) 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 |