异步定时器支持。
aio-timers的Python项目详细描述
AIO计时器
基于asyncio
的计时实用程序。
设置
pip install aio-timers
用法
importasynciofromaio_timersimportTimerdefcallback(name):print("Hello {}!".format(name))# timer is scheduled heretimer=Timer(5,callback,callback_args=("World",))# wait until the callback has been executedloop=asyncio.get_event_loop()loop.run_until_complete(timer.wait())print("end")
输出:
(5秒后)
Hello World!
end
计时器
在delay
秒后调用callback
。
计时器作为事件循环上的任务执行。
调用回调:
- 如果不是协程,则作为同步函数;
- 如果它是一个协程,或者
callback_async
标志设置为True
,则使用wait。
将忽略回调返回的任何结果。
构造函数
Timer(delay, callback, callback_args=(), callback_kwargs={}, callback_async=False, *, loop=None)
其中:
- 延迟,在执行
callback
之前的秒数; - 回调,在
delay
秒后执行的回调 - 回调参数(可选,默认值为
()
)要传递给callback
- 要传递给
callback
- 回调异步(可选,默认值为
False
)如果True
,则回调将在事件循环上执行(await
) - 循环(可选,默认值为
None
)事件循环,在该事件循环中,将计划延迟的任务(如果None
将使用asyncio.get_event_loop()
)
注意:在修饰协同程序时(例如,使用functools.partial
)应该使用callback_async
标志
.cancel()
取消回调的执行。
异步等待()
等待回调被执行或其执行被取消。
如果已取消执行,将引发asyncio.CancelledError
。