class Sidekiq::QueuePause::PausingFetch

Public Instance Methods

retrieve_work() click to toggle source
# File lib/sidekiq-queue-pause.rb, line 44
def retrieve_work
  qcmd = unpaused_queues_cmd

  if qcmd.size > 1
    retrieve_work_for_queues qcmd
  else
    sleep(Sidekiq::QueuePause.retry_after || Sidekiq::BasicFetch::TIMEOUT)
    nil
  end
end
retrieve_work_for_queues(qcmd) click to toggle source
# File lib/sidekiq-queue-pause.rb, line 55
def retrieve_work_for_queues(qcmd)
  work = Sidekiq.redis { |conn| conn.brpop(*qcmd) }
  UnitOfWork.new(*work) if work
end
unpaused_queues_cmd() click to toggle source

Returns the list of unpause queue names.

@return [Array<String>] The list of unpaused queue names.

# File lib/sidekiq-queue-pause.rb, line 63
def unpaused_queues_cmd
  queues = queues_cmd
  queues.reject do |q|
    next if q.is_a?(Integer)
    next if q.is_a?(Hash)

    Sidekiq::QueuePause.paused?(q.gsub("queue:", ""), Sidekiq::QueuePause.process_key)
  end
end