class Synapse::ProcessManager::SimpleProcessManager
Simple implementation of a process manager
Attributes
always_create_events[RW]
@return [Array<Class>] Types of events that will always result in the creation of a process
optionally_create_events[RW]
@return [Array<Class>] Types of events that will result in the creation of a process if one
doesn't already exist
Public Class Methods
new(repository, factory, lock_manager, correlation_resolver, *process_types)
click to toggle source
@param [ProcessRepository] repository @param [ProcessFactory] factory @param [LockManager] lock_manager @param [CorrelationResolver] correlation_resolver @param [Class…] process_types @return [undefined]
Calls superclass method
Synapse::ProcessManager::ProcessManager::new
# File lib/synapse/process_manager/simple_process_manager.rb, line 18 def initialize(repository, factory, lock_manager, correlation_resolver, *process_types) super repository, factory, lock_manager, *process_types @correlation_resolver = correlation_resolver @always_create_events = Array.new @optionally_create_events = Array.new end
Protected Instance Methods
creation_policy_for(process_type, event)
click to toggle source
@param [Class] process_type @param [EventMessage] event @return [Symbol]
# File lib/synapse/process_manager/simple_process_manager.rb, line 31 def creation_policy_for(process_type, event) if @always_create_events.include? event.payload_type :always elsif @optionally_create_events.include? event.payload_type :if_none_found else :none end end
extract_correlation(process_type, event)
click to toggle source
@param [Class] process_type @param [EventMessage] event @return [Correlation] Returns nil if no correlation could be extracted
# File lib/synapse/process_manager/simple_process_manager.rb, line 44 def extract_correlation(process_type, event) @correlation_resolver.resolve event end