October 2018
Beginner to intermediate
736 pages
17h 39m
English
The Orchestrator would be concerned with registration, unregistration, and pulse operations (allowing the Workers to send messages to the Orchestrator, essentially saying "I'm still alive"):
ORCHESTRATOR_OPERATIONS = namedtuple(
'ORCHESTRATOR_OPERATIONS', [
'register_worker', 'unregister_worker', 'worker_pulse'
]
)(
register_worker='register_worker',
unregister_worker='unregister_worker',
worker_pulse='worker_pulse',
)
The Orchestrator's _handle_message would have to map each operation to the appropriate method:
def _handle_message(self, message:(DaemonMessage,)) -> None: self.info( '%s._handle_message called:' % self.__class__.__name__ ) # ... if message.operation == ORCHESTRATOR_OPERATIONS.register_worker: self.register_worker(message) ...