def start(self, *args, **kwargs): log.debug("Starting server for compound task '{0}'".format(self.id)) address = amqp.models.Address(routing_key='*') yield amqp.build_server(address, TaskListener, self, self.queues) address = amqp.models.Address(routing_key='tasks.{0}.updates'.format(self.id)) self._task_client = yield amqp.build_client(address, TaskListener, distribution='tasks') r = yield defer.maybeDeferred(self.run, *args, **kwargs) self.notify() defer.returnValue(r)
def start(self, *args, **kwargs): assert self.status is types.TaskStatus.WAITING, "Task already started" address = amqp.models.Address(routing_key=self.id) yield amqp.build_server(address, TaskServer, self, self.queues) address = amqp.models.Address(routing_key='tasks.{0}.updates'.format(self.id)) self._task_client = yield amqp.build_client(address, TaskListener, distribution='tasks') self._started = time.time() r = yield defer.maybeDeferred(self.run, *args, **kwargs) self.status = types.TaskStatus.RUNNING defer.returnValue(r)