module SidekiqUtils::EnqueuedJobsHelper

Public Class Methods

counts() click to toggle source
# File lib/sidekiq_utils/enqueued_jobs_helper.rb, line 4
def counts
  counts = {}
  Sidekiq::Queue.all.each do |queue|
    queue_job_counts = counts[queue.name] ||= {}
    queue.each do |job|
      job_key = SidekiqUtils::RedisMonitorStorage.job_prefix(
          job, unwrap_arguments: true)
      queue_job_counts[job_key] ||= 0
      queue_job_counts[job_key] += 1
    end
  end
  counts
end
delete(queue:, job_class:, first_argument: nil) click to toggle source
# File lib/sidekiq_utils/enqueued_jobs_helper.rb, line 18
def delete(queue:, job_class:, first_argument: nil)
  if job_class.is_a?(Class)
    job_class = job_class.name
  else
    job_class = job_class.to_s
  end

  deleted = 0
  Sidekiq::Queue.all.each do |iter_queue|
    next if queue && queue.to_s != iter_queue.name

    iter_queue.each do |job|
      next if job['class'] != job_class
      if first_argument && SidekiqUtils::AdditionalSerialization.
          unwrap_argument(job['args'].first) != first_argument
        next
      end

      job.delete
      deleted += 1
    end
  end

  deleted
end