Asyncio ждет TimerHandle - PullRequest
       9

Asyncio ждет TimerHandle

0 голосов
/ 19 сентября 2018

Кажется, что TimerHandle не является ожидаемым.Какой предпочтительный способ ожидания всех обратных вызовов, запланированных с использованием asyncio.call_later, при условии, что у меня есть все TimerHandle s.

1 Ответ

0 голосов
/ 01 октября 2018

ОК, я посмотрел, как реализован asyncio.sleep, и оказалось, что он создает внутренний Future и запускает call_later.Исходя из этого, я пришел к выводу, что лучшим вариантом будет создать сопрограмму и использовать ее следующим образом:

async def set_timer(seconds):
    await asyncio.sleep(seconds)
    do_something_important()

timer_task = asyncio.ensure_future(set_timer(10))
timers.append(timer_task)
...
await asyncio.gather(*timers)
...