32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/component_host/host.rb', line 32
def start(&probe)
started_components = []
Actor::Supervisor.start do |supervisor|
supervisor.add_observer record_errors_observer
supervisor.add_observer log_observer
signal.trap 'TSTP' do
message = Actor::Messages::Suspend
send.(message, supervisor.address)
logger.info(tags: [:*, :signal]) { "Handled TSTP signal (Message Name: #{message.message_name}, SupervisorAddress: #{supervisor.address.id})" }
end
signal.trap 'CONT' do
message = Actor::Messages::Resume
send.(message, supervisor.address)
logger.info(tags: [:*, :signal]) { "Handled CONT signal (Message Name: #{message.message_name}, SupervisorAddress: #{supervisor.address.id})" }
end
signal.trap 'INT' do
message = Actor::Messages::Shutdown
send.(message, supervisor.address)
logger.info(tags: [:*, :signal]) { "Handled INT signal (Message Name: #{message.message_name}, SupervisorAddress: #{supervisor.address.id})" }
end
signal.trap 'TERM' do
message = Actor::Messages::Shutdown
send.(message, supervisor.address)
logger.info(tags: [:*, :signal]) { "Handled TERM signal (Message Name: #{message.message_name}, SupervisorAddress: #{supervisor.address.id})" }
end
start_components do |component|
started_components << component
end
probe.(supervisor) if probe
end
started_components
end
|