From ddca2f498cb86d6194e5f5ff0391d6feeb16a5a3 Mon Sep 17 00:00:00 2001 From: David Hurst Date: Fri, 11 Aug 2017 12:37:17 -0600 Subject: [PATCH] Backport 0.4 handling of workers after death --- eventmq/jobmanager.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/eventmq/jobmanager.py b/eventmq/jobmanager.py index c904d99..21bc9eb 100644 --- a/eventmq/jobmanager.py +++ b/eventmq/jobmanager.py @@ -146,13 +146,9 @@ def _start_event_loop(self): Starts the actual event loop. Usually called by :meth:`start` """ # Acknowledgment has come - # When the job manager unexpectedly disconnects from the router and - # reconnects it needs to send a ready for each previously available - # worker. - # Send a READY for each previously available worker - if hasattr(self, '_workers'): - for _ in self._workers: - self.send_ready() + + # Instantiate workers + self.workers self.status = STATUS.running @@ -218,6 +214,14 @@ def _start_event_loop(self): except Exception: logger.exception("Unhandled exception in main jobmanager loop") + # Cleanup + del self._workers + + # Flush the queues with workers + self.request_queue = mp_queue() + self.finished_queue = mp_queue() + logger.info("Reached end of event loop") + def handle_response(self, resp): """ Handles a response from a worker process to the jobmanager