Asyncio等待TimerHandle

时间:2018-09-19 08:09:28

标签: python python-asyncio

似乎TimerHandle尚待解决。假设我有所有asyncio.call_later,等待使用TimerHandle安排的所有回调的首选方式是什么。

1 个答案:

答案 0 :(得分:1)

好的,我研究了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)