class AtomicSidekiq::InFlightQueue
Attributes
keymaker[R]
Public Class Methods
new()
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 3 def initialize @keymaker = InFlightKeymaker.new(AtomicFetch::IN_FLIGHT_KEY_PREFIX) end
Public Instance Methods
delete_job(jid)
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 12 def delete_job(jid) job_matcher = keymaker.job_matcher(jid) job_keys = retrieve_keys(job_matcher) return 0 if job_keys.empty? Sidekiq.redis { |conn| conn.del(*job_keys) } end
list()
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 7 def list keys = list_keys retrieve_jobs(keys) end
Private Instance Methods
list_keys()
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 24 def list_keys matcher = keymaker.matcher result = [] it = 0 loop do it, keys = Sidekiq.redis { |conn| conn.scan(it, match: matcher) } result.concat(keys) it = it.to_i break if it.zero? end result end
retrieve_jobs(keys)
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 37 def retrieve_jobs(keys) Sidekiq.redis do |conn| keys.map { |key| JSON.parse(conn.get(key)) } end end
retrieve_keys(key_wildcard)
click to toggle source
# File lib/atomic_sidekiq/in_flight_queue.rb, line 43 def retrieve_keys(key_wildcard) Sidekiq.redis { |conn| conn.keys(key_wildcard) } end