class Sidekiq::JobSet
Public Instance Methods
delete_by_jid(score, jid)
click to toggle source
# File lib/sidekiq/api.rb, line 589 def delete_by_jid(score, jid) Sidekiq.redis do |conn| elements = conn.zrangebyscore(name, score, score) elements.each do |element| message = Sidekiq.load_json(element) if message["jid"] == jid ret = conn.zrem(name, element) @_size -= 1 if ret break ret end false end end end
Also aliased as: delete
delete_by_value(name, value)
click to toggle source
# File lib/sidekiq/api.rb, line 581 def delete_by_value(name, value) Sidekiq.redis do |conn| ret = conn.zrem(name, value) @_size -= 1 if ret ret end end
each() { |sorted_entry| ... }
click to toggle source
# File lib/sidekiq/api.rb, line 535 def each initial_size = @_size offset_size = 0 page = -1 page_size = 50 while true do range_start = page * page_size + offset_size range_end = range_start + page_size - 1 elements = Sidekiq.redis do |conn| conn.zrange name, range_start, range_end, with_scores: true end break if elements.empty? page -= 1 elements.reverse.each do |element, score| yield SortedEntry.new(self, score, element) end offset_size = initial_size - @_size end end
fetch(score, jid = nil)
click to toggle source
# File lib/sidekiq/api.rb, line 556 def fetch(score, jid = nil) elements = Sidekiq.redis do |conn| conn.zrangebyscore(name, score, score) end elements.inject([]) do |result, element| entry = SortedEntry.new(self, score, element) if jid result << entry if entry.jid == jid else result << entry end result end end
find_job(jid)
click to toggle source
Find the job with the given JID within this sorted set.
This is a slow, inefficient operation. Do not use under normal conditions. Sidekiq Pro contains a faster version.
# File lib/sidekiq/api.rb, line 577 def find_job(jid) self.detect { |j| j.jid == jid } end
schedule(timestamp, message)
click to toggle source
# File lib/sidekiq/api.rb, line 529 def schedule(timestamp, message) Sidekiq.redis do |conn| conn.zadd(name, timestamp.to_f.to_s, Sidekiq.dump_json(message)) end end