def put_task(self, signature, routing_key=DEFAULT_CHANNEL): message = self.create_task_message(signature) remain_tasks_count = self.task_queues_manager.remain_tasks_count() self.enqueue_task(message) if remain_tasks_count == 0: # call for help only if this is the first one. self.call_for_help(routing_key) async_result = None if message.get('need_result'): async_result = asynch_result.Asynch_result( message.get('task_id'), self.task_queues_manager._requests_need_result, self.receive_one_cycle) return async_result
def request(self, message): time_stamp = str(self.now()) message['message_id'] = time_stamp message['sender'] = self.name message['reply_to'] = self.name message['result'] = None message['correlation_id'] = time_stamp message = self.format_message(**message) self.append_request_message(message) async_result = None if message.get('need_result'): async_result = asynch_result.Asynch_result( message.get('correlation_id'), self._requests_need_result, self.receive_one_cycle) if self.status['Datatransceiver ready']: self.process_messages() return message, async_result