Class: Kodo::Heartbeat
- Inherits:
-
Object
- Object
- Kodo::Heartbeat
- Defined in:
- lib/kodo/heartbeat.rb
Instance Method Summary collapse
-
#initialize(channels:, router:, audit:, reminders: nil, interval: 60) ⇒ Heartbeat
constructor
A new instance of Heartbeat.
- #running? ⇒ Boolean
- #start! ⇒ Object
- #stop! ⇒ Object
Constructor Details
#initialize(channels:, router:, audit:, reminders: nil, interval: 60) ⇒ Heartbeat
Returns a new instance of Heartbeat.
5 6 7 8 9 10 11 12 13 |
# File 'lib/kodo/heartbeat.rb', line 5 def initialize(channels:, router:, audit:, reminders: nil, interval: 60) @channels = channels @router = router @audit = audit @reminders = reminders @interval = interval @running = false @beat_count = 0 end |
Instance Method Details
#running? ⇒ Boolean
36 |
# File 'lib/kodo/heartbeat.rb', line 36 def running? = @running |
#start! ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/kodo/heartbeat.rb', line 15 def start! @running = true Kodo.logger.info("💓 Heartbeat started (interval: #{@interval}s)") @audit.log(event: "heartbeat_start", detail: "interval:#{@interval}s") loop do break unless @running beat! sleep(@interval) end rescue Interrupt stop! end |