From 063380304ac7c913f04349e930ffb45586cc06d2 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Tue, 11 Feb 2014 05:56:51 -0500 Subject: [PATCH] Manage the zeromq connection per-pid --- awx/plugins/callback/job_event_callback.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/awx/plugins/callback/job_event_callback.py b/awx/plugins/callback/job_event_callback.py index 2782142b28..7fc1e7465d 100644 --- a/awx/plugins/callback/job_event_callback.py +++ b/awx/plugins/callback/job_event_callback.py @@ -102,6 +102,10 @@ class CallbackModule(object): self.logger.propagate = False def _init_connection(self): + self.context = None + self.socket = None + + def _start_connection(self): self.context = zmq.Context() self.socket = self.context.socket(zmq.REQ) self.socket.connect("tcp://127.0.0.1:5556") @@ -119,10 +123,16 @@ class CallbackModule(object): }) for retry_count in xrange(4): try: + if not hasattr(self, 'connection_pid'): + self.connection_pid = os.getpid() + if self.connection_pid != os.getpid(): + self._init_connection() + if self.context is None: + self._start_connection() + self.socket.send(json.dumps(msg)) self.logger.debug('Publish: %r, retry=%d', msg, retry_count) reply = self.socket.recv() - print("Received reply: " + str(reply)) return except Exception, e: self.logger.info('Publish Exception: %r, retry=%d', e,