Class: EventSourcery::EventProcessing::ESPRunner
- Inherits:
-
Object
- Object
- EventSourcery::EventProcessing::ESPRunner
- Defined in:
- lib/event_sourcery/event_processing/esp_runner.rb
Overview
NOTE: databases should be disconnected before running this EventSourcery.config.postgres.event_store_database.disconnect
Instance Method Summary collapse
-
#initialize(event_processors:, event_source:, max_seconds_for_processes_to_terminate: 30, shutdown_requested: false, after_fork: nil) ⇒ ESPRunner
constructor
A new instance of ESPRunner.
-
#start! ⇒ Object
Start each Event Stream Processor in a new child process.
Constructor Details
#initialize(event_processors:, event_source:, max_seconds_for_processes_to_terminate: 30, shutdown_requested: false, after_fork: nil) ⇒ ESPRunner
Returns a new instance of ESPRunner.
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/event_sourcery/event_processing/esp_runner.rb', line 6 def initialize(event_processors:, event_source:, max_seconds_for_processes_to_terminate: 30, shutdown_requested: false, after_fork: nil) @event_processors = event_processors @event_source = event_source @pids = [] @max_seconds_for_processes_to_terminate = max_seconds_for_processes_to_terminate @shutdown_requested = shutdown_requested @exit_status = true @after_fork = after_fork end |
Instance Method Details
#start! ⇒ Object
Start each Event Stream Processor in a new child process.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/event_sourcery/event_processing/esp_runner.rb', line 21 def start! with_logging do start_processes listen_for_shutdown_signals wait_till_shutdown_requested record_terminated_processes terminate_remaining_processes until all_processes_terminated? || waited_long_enough? record_terminated_processes end kill_remaining_processes record_terminated_processes until all_processes_terminated? end exit_indicating_status_of_processes end |