mirror of
https://github.com/ansible/awx.git
synced 2026-03-26 05:15:02 -02:30
Signal finished tasks to the task management system
This commit is contained in:
@@ -23,6 +23,9 @@ import uuid
|
|||||||
# Pexpect
|
# Pexpect
|
||||||
import pexpect
|
import pexpect
|
||||||
|
|
||||||
|
# ZMQ
|
||||||
|
import zmq
|
||||||
|
|
||||||
# Kombu
|
# Kombu
|
||||||
from kombu import Connection, Exchange, Queue
|
from kombu import Connection, Exchange, Queue
|
||||||
|
|
||||||
@@ -120,6 +123,13 @@ class BaseTask(Task):
|
|||||||
logger.error('Failed to update %s after %d retries.',
|
logger.error('Failed to update %s after %d retries.',
|
||||||
self.model._meta.object_name, retry_count)
|
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):
|
def get_model(self, pk):
|
||||||
return self.model.objects.get(pk=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)))
|
raise Exception("Task %s(pk:%s) was canceled" % (str(self.model.__class__), str(pk)))
|
||||||
else:
|
else:
|
||||||
raise Exception("Task %s(pk:%s) encountered an error" % (str(self.model.__class__), str(pk)))
|
raise Exception("Task %s(pk:%s) encountered an error" % (str(self.model.__class__), str(pk)))
|
||||||
|
self.signal_finished(pk)
|
||||||
|
|
||||||
class RunJob(BaseTask):
|
class RunJob(BaseTask):
|
||||||
'''
|
'''
|
||||||
|
|||||||
Reference in New Issue
Block a user