Pro API - rselk/sidekiq GitHub Wiki
Sidekiq Pro adds a few API extensions which execute Lua scripts directly in the Redis process for maximum performance. Lua-based features are only available with Redis 2.6+
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.
MyWorker.perform_async
queue = Sidekiq::Queue.new
queue.delete_by_class(MyWorker)
Sidekiq::JobSet#find_job(jid)
- this Lua-based version is much faster than the pure Ruby version in Sidekiq.
Pausing Queues
Sidekiq Pro allows you to pause processing on any queue processed with reliable_fetch
via the API:
q = Sidekiq::Queue.new('critical')
q.pause!
q.paused? # => true
q.unpause!
Notes
- If you have a plain Sidekiq process processing jobs on a paused queue, it will not pause.
- It can take up to 10 seconds for
pause!
andunpause!
to take effect.
The Pro API extensions are automatically loaded when you require 'sidekiq-pro' but you can require it directly too:
require 'sidekiq/pro/api'