def start(self): self.receiver.bind(RESULT_SOCKET) while True: task, result = self.receiver.recv_pyobj() task.result = result data.save_task_result(task, result) data.update_task_status(task, 'COMPLETED') signals.task_completed.send(task)
def start(self): self.receiver.connect(TASK_SOCKET) self.sender.connect(RESULT_SOCKET) # On worker initialization signals.worker_init.send(worker_id=self.id, type=self.__class__.__name__) while True: task = self.receiver.recv_pyobj() # Before run task data.update_task_status(task, 'RUNNING') signals.worker_before_execution.send(self, task=task) try: # Do work result = self.do_work(task) # After run task data.update_task_status(task, 'SUCCESS') # Send result self.sender.send_pyobj((task, result)) except RuntimeError: data.update_task_status(task, 'FAILURE') # After run task signals.worker_after_execution.send(self, task=task)