module SidekiqToolbelt

Constants

VERSION

Public Instance Methods

clear(*jobs, queue: :default) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 44
def clear(*jobs, queue: :default)
  loop do
    # update and reuse #kill?
    Sidekiq::Queue.new(:default).each do |job|
      if jobs.include? job.klass
        job.delete
      end
    end
    puts 'clearing...'
    sleep 5
  end
end
counts(queue: :default) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 6
def counts(queue: :default)
  counts = {}

  Sidekiq::Queue.new(queue).each do |job|
    if counts[job.klass].nil?
      counts[job.klass] = 1
    else
      counts[job.klass] += 1
    end
  end

  pp counts.sort_by {|k,v| -v}.to_h
end
kill(job_name, queue: :default) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 20
def kill(job_name, queue: :default)
  Sidekiq::Queue.new(queue).each do |job|
    job.delete if job.klass.starts_with?(job_name)
  end
end
kill_by_error(error, queue: :default) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 26
def kill_by_error(error, queue: :default)
  Sidekiq::Queue.new(queue).each do |job|
    job.delete if job.item['error_class'] == error
  end
end
kill_retries(job_name) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 32
def kill_retries(job_name)
  Sidekiq::RetrySet.new.each do |job|
    job.delete if job.klass.starts_with?(job_name)
  end
end
kill_retries_by_error(error) click to toggle source
# File lib/sidekiq_toolbelt.rb, line 38
def kill_retries_by_error(error)
  Sidekiq::RetrySet.new.each do |job|
    job.delete if job.item['error_class'] == error
  end
end