A Resque plugin. Requires Resque 1.9.10.
resque-pause adds functionality to pause resque jobs through the web interface.
pause allows you to stop the job for a slice of time.
The job finish the process it are doing and don't get a new task to do,
until the queue is released.
You can use this functionality to do some maintenance whithout kill workers, for example.
Usage / Examples
Single Job Instance
require 'resque-pause' class UpdateNetworkGraph extend Resque::Plugins::Pause @queue = :network_graph def self.perform(repo_id) heavy_lifting end end
Pause is achieved by storing a pause/queue key in Redis.
- When the job instance try to execute and the queue is paused, the job is paused for a slice of time.
- If the queue still paused after this time the job will abort and will be enqueued again with the same arguments.
You have to load ResquePause to enable the Pause tab.
Customise & Extend
Job pause check interval
The slice of time the job will wait for queue be unpaused before abort the job could be changed with attribute @pause_check_interval.
By default the time is 10 seconds.
You can define the attribute in your job class in seconds.
class UpdateNetworkGraph extend Resque::Plugins::Pause @queue = :network_graph @pause_check_interval = 30 def self.perform(repo_id) heavy_lifting end end
The above modification will ensure the job will wait for 30 seconds before abort.
$ gem install resque-pause