似乎TimerHandle
尚待解决。假设我有所有asyncio.call_later
,等待使用TimerHandle
安排的所有回调的首选方式是什么。
答案 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)