-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Pro API
Mike Perham edited this page Sep 25, 2019
·
24 revisions
Sidekiq Pro adds a few API extensions which execute Lua scripts directly in the Redis process for maximum performance.
-
Sidekiq::Queue#delete_job- takes a JID and deletes the corresponding job from the given queue, if it exists. Returns the deleted job or nil.
jid = MyWorker.perform_async
queue = Sidekiq::Queue.new
queue.delete_job(jid)-
Sidekiq::Queue#delete_by_class- takes a class and deletes all corresponding jobs from the queue. Returns the number of jobs deleted. The Standard API notes apply to this method.
MyWorker.perform_async
queue = Sidekiq::Queue.new
queue.delete_by_class(MyWorker)Using Sidekiq::RetrySet.new.each { |job| to find a job based on some criteria can be very slow if you have lots of jobs. Sidekiq Pro provides a scan API for job sets: Retry, Scheduled and Dead. Just pass a string that would match any content within the job payload:
Sidekiq::RetrySet.new.scan("NoMethodError") { |job| job.delete }
Sidekiq::DeadSet.new.scan("FTPWorker") { |job| ... }
Sidekiq::ScheduledSet.new.scan(some_jid) { |job| ... }Sidekiq Pro allows you to pause processing on any queue via the API:
q = Sidekiq::Queue.new('critical')
q.pause!
q.paused? # => true
q.unpause!