async def set_result(self, request: Request, response: Response, task_request: Request): """ 保存结果 @param request: @param response: @param task_request: """ # 如果失败,且失败次数未达到,返回waiting str_request = request.serialize(self.module) # 如果在进行队列中,删除 if str_request in self.pending: self.pending.pop(str_request) # 如果成功 if response.ok == 1: return True if response.ok == -1: self.failure[str_request] = response.status return False if str_request in self.failure: self.failure[str_request] += 1 await self.add(request) else: self.failure[str_request] = 1 await self.add(request)
async def set_result(self, request: Request, response: Response, task_request: Request): """ 保存结果,设置状态(成功或失败) @param request: @param response: @param task_request: @return: """ request_ser = request.serialize(self.module) with await self.pool as conn: if response.ok == 1: # 成功,删除pending队列 await conn.hdel(self._pending_key, request_ser) self.task_success += 1 else: failure_response = serialize_request_and_response(task_request, response) # 失败, 从等待队列中删除,并放到失败队列 pipe = conn.pipeline() pipe.hdel(self._pending_key, request_ser) pipe.hset(self._failure_key, request_ser, failure_response) await pipe.execute() self.task_failure += 1