From fc4f256723c4b5f7030765be279dcda3aced9034 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Wed, 12 Mar 2014 17:52:47 -0400 Subject: [PATCH] Signal finished tasks to the task management system --- awx/main/tasks.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 8915b49c7f..d87ed0fb40 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -23,6 +23,9 @@ import uuid # Pexpect import pexpect +# ZMQ +import zmq + # Kombu from kombu import Connection, Exchange, Queue @@ -120,6 +123,13 @@ class BaseTask(Task): logger.error('Failed to update %s after %d retries.', self.model._meta.object_name, retry_count) + def signal_finished(self, pk): + signal_context = zmq.Context() + signal_socket = signal_context.socket(zmq.REQ) + signal_socket.connect(settings.TASK_COMMAND_PORT) + signal_socket.send_json(dict(complete=pk)) + signal_socket.recv() + def get_model(self, pk): return self.model.objects.get(pk=pk) @@ -342,6 +352,7 @@ class BaseTask(Task): raise Exception("Task %s(pk:%s) was canceled" % (str(self.model.__class__), str(pk))) else: raise Exception("Task %s(pk:%s) encountered an error" % (str(self.model.__class__), str(pk))) + self.signal_finished(pk) class RunJob(BaseTask): '''