-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Pro API
Mike Perham edited this page Apr 18, 2014
·
24 revisions
Sidekiq Pro 1.2+ 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.
Sidekiq Pro allows you to pause processing on any reliable queue 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'