Initial commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
namespace :resque do
|
||||
|
||||
task "setup" => :environment do
|
||||
Resque.before_fork do |job|
|
||||
#we disconnect the worker so it reconnects on each job
|
||||
SequelRails.connection.disconnect
|
||||
Resque::Metrics.before_fork.call(job)
|
||||
end
|
||||
Resque.after_fork = Resque::Metrics.after_fork
|
||||
end
|
||||
|
||||
desc "Quit running workers"
|
||||
task :stop_workers => :environment do
|
||||
pids = []
|
||||
Resque.workers.each do |worker|
|
||||
pids << worker.id.split(':')[1]
|
||||
end
|
||||
if pids.empty?
|
||||
puts "No workers to kill"
|
||||
else
|
||||
syscmd = "kill -s QUIT #{pids.join(' ')}"
|
||||
system(syscmd)
|
||||
end
|
||||
end
|
||||
|
||||
desc "Clear pending tasks"
|
||||
task :clear => :environment do
|
||||
queues = Resque.queues
|
||||
queues.each do |queue_name|
|
||||
puts "Clearing #{queue_name}..."
|
||||
Resque.redis.del "queue:#{queue_name}"
|
||||
end
|
||||
|
||||
puts "Clearing delayed..." # in case of scheduler - doesn't break if no scheduler module is installed
|
||||
Resque.redis.keys("delayed:*").each do |key|
|
||||
Resque.redis.del "#{key}"
|
||||
end
|
||||
Resque.redis.del "delayed_queue_schedule"
|
||||
|
||||
puts "Clearing stats..."
|
||||
Resque.redis.set "stat:failed", 0
|
||||
Resque.redis.set "stat:processed", 0
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user