Код: Выделить всё
async def run(self) -> int:
cur_ts = 0
tasks: List[asyncio.Task] = []
while not self.requests.empty():
req = self.requests.get()
self.num_reqs += 1
t = asyncio.create_task(self._send_request(req))
tasks.append(t)
interval = req.get_timestamp() - cur_ts
cur_ts = req.get_timestamp()
# Sleep for x ms
await asyncio.sleep(interval / 1000)
await asyncio.gather(*tasks)
accuracy = self.num_corrects.get() / self.num_reqs
failure = self.num_failures.get() / self.num_reqs
print("Accuracy is ", accuracy, ", failure rate is ", failure)
return 0
async def _send_request(self, req: Request) -> None:
err = self.sched.receive(req)
if err == 0:
res = await req.get_result()
if res == 1:
self.num_corrects.increment()
else:
self.num_failures.increment()
Код: Выделить всё
def set_result(self, result: int):
if not self.result.done():
self.result.set_result(result)
async def get_result(self) -> int:
return await self.result
Я проверил идентификатор цикла события и обнаружил, что все созданные задачи - это в том же цикле.
Следовательно, мне интересно, что может быть причиной этой проблемы?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... reate-task