cartodb/lib/tasks/resque.rake

45 lines
1.2 KiB
Ruby
Raw Normal View History

2020-06-15 10:58:47 +08:00
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