Class: Resque::Worker::Heart

Inherits:
Object
  • Object
show all
Defined in:
lib/resque/heartbeat.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#workerObject (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_beatObject



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

Returns:

  • (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

#redisObject



39
40
41
42
# File 'lib/resque/heartbeat.rb', line 39

def redis
  Resque.redis
  # @redis && connected? ? @redis : @redis = connect
end

#runObject



35
36
37
# File 'lib/resque/heartbeat.rb', line 35

def run
  Thread.new { loop { sleep(2) && beat! } }
end