class Barbeque::RetryPoller
Public Class Methods
new(job_queue)
click to toggle source
# File lib/barbeque/retry_poller.rb, line 6 def initialize(job_queue) @job_queue = job_queue @stop_requested = false end
Public Instance Methods
run()
click to toggle source
# File lib/barbeque/retry_poller.rb, line 11 def run Barbeque::JobRetry .joins(:job_execution) .running .merge(Barbeque::JobExecution.where(job_queue: @job_queue)) .find_in_batches do |job_retries| job_retries.shuffle.each do |job_retry| if @stop_requested return end job_retry.with_lock do if job_retry.running? poll(job_retry) end end end end sleep 1 end
stop()
click to toggle source
# File lib/barbeque/retry_poller.rb, line 31 def stop @stop_requested = true end
Private Instance Methods
poll(job_retry)
click to toggle source
# File lib/barbeque/retry_poller.rb, line 37 def poll(job_retry) Barbeque::ExceptionHandler.set_message_context(job_retry.message_id, nil) executor = Executor.create executor.poll_retry(job_retry) end