module Resque
Public Class Methods
dead_workers()
click to toggle source
# File lib/resque/heartbeat.rb, line 134 def self.dead_workers Worker.all.select{|w| w.dead?} end
prune_dead_workers!()
click to toggle source
NOTE: this assumes all of your workers are putting out heartbeats
# File lib/resque/heartbeat.rb, line 114 def self.prune_dead_workers! begin beats = Resque.redis.keys(Worker::Heart.heartbeat_key('*', '*')) Worker.all.each do |worker| worker.prune_if_dead # remove the worker from consideration beats.delete worker.heart.key end # at this point, beats only contains stuff from workers we don't even know about. Ditch 'em. beats.each do |key| Resque.logger.info "Removing #{key} from heartbeats because the worker isn't talking to Resque." Resque.redis.del key end rescue Exception => e Resque.logger.error "#{e.message} #{e.backtrace}" end end