Class: JetstreamBridge::Consumer::LifecycleState
- Inherits:
-
Object
- Object
- JetstreamBridge::Consumer::LifecycleState
- Defined in:
- lib/jetstream_bridge/consumer/consumer_state.rb
Overview
Tracks lifecycle flags and timing for the consumer.
Instance Attribute Summary collapse
-
#running ⇒ Boolean
Whether the consumer loop should keep running.
-
#shutdown_requested ⇒ Boolean
Whether a graceful shutdown has been requested.
-
#signal_logged ⇒ Boolean
Whether the signal receipt has been logged.
-
#signal_received ⇒ String?
Signal name that triggered shutdown (e.g. “INT”).
-
#start_time ⇒ Time
readonly
When the consumer started.
Instance Method Summary collapse
-
#initialize(start_time: Time.now) ⇒ LifecycleState
constructor
A new instance of LifecycleState.
-
#signal!(sig) ⇒ void
Record an OS signal and trigger shutdown.
-
#stop! ⇒ void
Request a graceful shutdown.
-
#uptime(now = Time.now) ⇒ Float
Calculate consumer uptime in seconds.
Constructor Details
#initialize(start_time: Time.now) ⇒ LifecycleState
Returns a new instance of LifecycleState.
34 35 36 37 38 39 40 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 34 def initialize(start_time: Time.now) @running = true @shutdown_requested = false @signal_received = nil @signal_logged = false @start_time = start_time end |
Instance Attribute Details
#running ⇒ Boolean
Returns Whether the consumer loop should keep running.
23 24 25 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 23 def running @running end |
#shutdown_requested ⇒ Boolean
Returns Whether a graceful shutdown has been requested.
25 26 27 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 25 def shutdown_requested @shutdown_requested end |
#signal_logged ⇒ Boolean
Returns Whether the signal receipt has been logged.
29 30 31 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 29 def signal_logged @signal_logged end |
#signal_received ⇒ String?
Returns Signal name that triggered shutdown (e.g. “INT”).
27 28 29 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 27 def signal_received @signal_received end |
#start_time ⇒ Time (readonly)
Returns When the consumer started.
31 32 33 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 31 def start_time @start_time end |
Instance Method Details
#signal!(sig) ⇒ void
This method returns an undefined value.
Record an OS signal and trigger shutdown.
54 55 56 57 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 54 def signal!(sig) @signal_received = sig stop! end |
#stop! ⇒ void
This method returns an undefined value.
Request a graceful shutdown.
45 46 47 48 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 45 def stop! @shutdown_requested = true @running = false end |
#uptime(now = Time.now) ⇒ Float
Calculate consumer uptime in seconds.
63 64 65 |
# File 'lib/jetstream_bridge/consumer/consumer_state.rb', line 63 def uptime(now = Time.now) now - @start_time end |