Signal finished tasks to the task management system

This commit is contained in:
Matthew Jones 2014-03-12 17:52:47 -04:00
parent 99d42dc3fa
commit fc4f256723

View File

@ -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):
'''