class Sidekiq::Queue

end
job.delete if job.jid == ‘abcdef1234567890’
job.args # => [1, 2, 3]
job.klass # => ‘MyWorker’
queue.each do |job|
queue = Sidekiq::Queue.new(“mailer”)
and is changing within Redis moment by moment.
and deletion of jobs. NB: this queue data is real-time
Allows enumeration of all jobs within the queue
Represents a queue within Sidekiq.
#

def self.all

Returns:
  • (Array) -
def self.all
  Sidekiq.redis { |c| c.sscan("queues").to_a }.sort.map { |q| Sidekiq::Queue.new(q) }
end

def as_json(options = nil)

Other tags:
    Api: - private
def as_json(options = nil)
  {name: name} # 5336
end

def clear

Returns:
  • (Boolean) - true
def clear
  Sidekiq.redis do |conn|
    conn.multi do |transaction|
      transaction.unlink(@rname)
      transaction.srem("queues", [name])
    end
  end
  true
end

def each

def each
  initial_size = size
  deleted_size = 0
  page = 0
  page_size = 50
  loop do
    range_start = page * page_size - deleted_size
    range_end = range_start + page_size - 1
    entries = Sidekiq.redis { |conn|
      conn.lrange @rname, range_start, range_end
    }
    break if entries.empty?
    page += 1
    entries.each do |entry|
      yield JobRecord.new(entry, @name)
    end
    deleted_size = initial_size - size
  end
end

def find_job(jid)

Returns:
  • (nil) - if not found
  • (Sidekiq::JobRecord) -

Parameters:
  • jid (String) -- the job_id to look for
def find_job(jid)
  detect { |j| j.jid == jid }
end

def initialize(name = "default")

Parameters:
  • name (String) -- the name of the queue
def initialize(name = "default")
  @name = name.to_s
  @rname = "queue:#{name}"
end

def latency

Returns:
  • (Float) - in seconds
def latency
  entry = Sidekiq.redis { |conn|
    conn.lindex(@rname, -1)
  }
  return 0.0 unless entry
  job = Sidekiq.load_json(entry)
  enqueued_at = job["enqueued_at"]
  if enqueued_at
    if enqueued_at.is_a?(Float)
      # old format
      now = Time.now.to_f
      now - enqueued_at
    else
      now = ::Process.clock_gettime(::Process::CLOCK_REALTIME, :millisecond)
      (now - enqueued_at) / 1000.0
    end
  else
    0.0
  end
end

def paused?

Returns:
  • (Boolean) - if the queue is currently paused
def paused?
  false
end

def size

Returns:
  • (Integer) - the size
def size
  Sidekiq.redis { |con| con.llen(@rname) }
end