Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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