class Sidekiq::ReliableFetch
Constants
- RELIABLE_FETCH_IDLE_TIMEOUT
For reliable fetch we don't use Redis' blocking operations so we inject a regular sleep into the loop.
Attributes
queues_size[R]
Public Class Methods
new(options)
click to toggle source
Calls superclass method
Sidekiq::BaseReliableFetch::new
# File lib/sidekiq/reliable_fetch.rb, line 11 def initialize(options) super @queues = queues.uniq if strictly_ordered_queues @queues_size = queues.size end
Private Instance Methods
retrieve_unit_of_work()
click to toggle source
# File lib/sidekiq/reliable_fetch.rb, line 20 def retrieve_unit_of_work queues_list = strictly_ordered_queues ? queues : queues.shuffle queues_list.each do |queue| work = Sidekiq.redis do |conn| conn.rpoplpush(queue, self.class.working_queue_name(queue)) end return UnitOfWork.new(queue, work) if work end # We didn't find a job in any of the configured queues. Let's sleep a bit # to avoid uselessly burning too much CPU sleep(RELIABLE_FETCH_IDLE_TIMEOUT) nil end