Skip to content

Instantly share code, notes, and snippets.

@saimonmoore
Created December 21, 2012 09:45
Show Gist options
  • Save saimonmoore/4351805 to your computer and use it in GitHub Desktop.
Save saimonmoore/4351805 to your computer and use it in GitHub Desktop.
Handy tools for resque
# see http://stackoverflow.com/questions/5880962/how-to-destroy-jobs-enqueued-by-resque-workers - old version
# see https://github.com/defunkt/resque/issues/49
# see http://redis.io/commands - new commands
namespace :carefully do
namespace :resque do
task :redis_available do
unless $redis
warn "Redis not available..."
exit(1)
end
end
desc "Clear pending tasks"
task :clear_pending => [:environment, :redis_available] do
puts "Choose from:"
puts Resque.queues
puts "Now type a comma-delimited list of queues and press return"
puts "> "
queues = gets.to_s.split(',')
queues.each do |queue_name|
puts "Clearing #{queue_name}..."
Resque.redis.del "queue:#{queue_name}"
end
end
task :clear_delayed => [:environment, :redis_available] do
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"
end
task :clear_stats => [:environment, :redis_available] do
puts "Clearing stats..."
Resque.redis.set "stat:failed", 0
Resque.redis.set "stat:processed", 0
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment