Class: Synapse::ProcessManager::ProcessManager Abstract

Inherits:
Object
  • Object
show all
Includes:
EventBus::EventListener
Defined in:
lib/synapse/process_manager/process_manager.rb

Overview

This class is abstract.

Represents a mechanism for managing the lifeycle and notification of process instances

Direct Known Subclasses

SimpleProcessManager, WiringProcessManager

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repository, factory, lock_manager, *process_types) ⇒ undefined

Parameters:



16
17
18
19
20
21
22
23
24
# File 'lib/synapse/process_manager/process_manager.rb', line 16

def initialize(repository, factory, lock_manager, *process_types)
  @repository = repository
  @factory = factory
  @lock_manager = lock_manager
  @process_types = process_types.flatten

  @logger = Logging.logger[self.class]
  @suppress_exceptions = true
end

Instance Attribute Details

#suppress_exceptionsBoolean

Returns true if exceptions will be logged silently

Returns:

  • (Boolean)

    Returns true if exceptions will be logged silently



9
10
11
# File 'lib/synapse/process_manager/process_manager.rb', line 9

def suppress_exceptions
  @suppress_exceptions
end

Instance Method Details

#notify(event) ⇒ undefined

Parameters:

  • event (EventMessage)

Returns:

  • (undefined)


28
29
30
31
32
33
34
35
36
37
38
# File 'lib/synapse/process_manager/process_manager.rb', line 28

def notify(event)
  @process_types.each do |process_type|
    correlation = extract_correlation process_type, event
    if correlation
      current = notify_current_processes process_type, event, correlation
      if should_start_new_process process_type, event, current
        start_new_process process_type, event, correlation
      end
    end
  end
end