class Sidekiq::PriorityQueue::CombinedFetch

Attributes

fetches[R]

Public Class Methods

configure() { |combined_fetch| ... } click to toggle source
# File lib/sidekiq/priority_queue/combined_fetch.rb, line 19
def self.configure(&block)
  combined_fetch = self.new
  yield combined_fetch

  combined_fetch
end
new(fetches = []) click to toggle source
# File lib/sidekiq/priority_queue/combined_fetch.rb, line 8
def initialize(fetches = [])
  @fetches = fetches
end

Public Instance Methods

add(fetch) click to toggle source
# File lib/sidekiq/priority_queue/combined_fetch.rb, line 26
def add(fetch)
  fetches << fetch
end
bulk_requeue(inprogress, options) click to toggle source
# File lib/sidekiq/priority_queue/combined_fetch.rb, line 30
def bulk_requeue(inprogress, options)
  # ReliableFetch#bulk_equeue ignores inprogress, so it's safe to call both
  fetches.each do |f|
    if [Fetch, ReliableFetch].any? { |klass| f.is_a?(klass) }
      jobs_to_requeue = inprogress.select{|uow| uow.queue.start_with?('priority-queue:') }
      f.bulk_requeue(jobs_to_requeue, options)
    else
      jobs_to_requeue = inprogress.reject{|uow| uow.queue.start_with?('priority-queue:') }
      f.bulk_requeue(jobs_to_requeue, options)
    end
  end
end
retrieve_work() click to toggle source
# File lib/sidekiq/priority_queue/combined_fetch.rb, line 12
def retrieve_work
  fetches.each do |fetch|
    work = fetch.retrieve_work
    return work if work
  end
end