class Sidekiq::PriorityQueue::Queue
Attributes
name[R]
Public Class Methods
all()
click to toggle source
# File lib/sidekiq/priority_queue/api.rb, line 42 def self.all Sidekiq.redis { |con| con.smembers('priority-queues') } .map{ |key| key.gsub('priority-queue:', '') } .sort .map { |q| Queue.new(q) } end
new(name='default')
click to toggle source
# File lib/sidekiq/priority_queue/api.rb, line 12 def initialize(name='default') @name = name @rname = "priority-queue:#{name}" end
Public Instance Methods
each() { |job| ... }
click to toggle source
# File lib/sidekiq/priority_queue/api.rb, line 21 def each initial_size = size deleted_size = 0 page = 0 page_size = 50 while true do range_start = page * page_size - deleted_size range_end = range_start + page_size - 1 entries = Sidekiq.redis do |conn| conn.zrange @rname, range_start, range_end, withscores: true end break if entries.empty? page += 1 entries.each do |entry, priority| yield Job.new(entry, @name, priority) end deleted_size = initial_size - size end end
size()
click to toggle source
# File lib/sidekiq/priority_queue/api.rb, line 17 def size Sidekiq.redis { |con| con.zcard(@rname) } end