Class: Resque::Worker::Heart
- Inherits:
-
Object
- Object
- Resque::Worker::Heart
- Defined in:
- lib/resque/heartbeat.rb
Instance Attribute Summary collapse
-
#worker ⇒ Object
readonly
Returns the value of attribute worker.
Instance Method Summary collapse
-
#beat! ⇒ Object
def connected? @redis.client.connected? end.
-
#initialize(worker) ⇒ Heart
constructor
A new instance of Heart.
- #last_beat ⇒ Object
- #last_beat_before?(seconds) ⇒ Boolean
- #redis ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(worker) ⇒ Heart
Returns a new instance of Heart.
31 32 33 |
# File 'lib/resque/heartbeat.rb', line 31 def initialize(worker) @worker = worker end |
Instance Attribute Details
#worker ⇒ Object (readonly)
Returns the value of attribute worker.
29 30 31 |
# File 'lib/resque/heartbeat.rb', line 29 def worker @worker end |
Instance Method Details
#beat! ⇒ Object
def connected?
@redis.client.connected?
end
57 58 59 60 61 62 |
# File 'lib/resque/heartbeat.rb', line 57 def beat! redis.sadd(:workers, worker) redis.set("worker:#{worker}:heartbeat", Time.now.to_s) rescue Exception => e p e end |
#last_beat ⇒ Object
68 69 70 |
# File 'lib/resque/heartbeat.rb', line 68 def last_beat Resque.redis.get("worker:#{worker}:heartbeat") || worker.started end |
#last_beat_before?(seconds) ⇒ Boolean
64 65 66 |
# File 'lib/resque/heartbeat.rb', line 64 def last_beat_before?(seconds) Time.parse(last_beat).utc < (Time.now.utc - seconds) rescue true end |
#redis ⇒ Object
39 40 41 42 |
# File 'lib/resque/heartbeat.rb', line 39 def redis Resque.redis # @redis && connected? ? @redis : @redis = connect end |
#run ⇒ Object
35 36 37 |
# File 'lib/resque/heartbeat.rb', line 35 def run Thread.new { loop { sleep(2) && beat! } } end |