如何取消asyncio的loop.call_later()?
How to cancel asyncio's loop.call_later()?
如果我schedule a callback using loop.call_later()
(或loop.call_at()
,行为相同),是否可以取消它的执行?
为什么?假设我在一分钟后 运行 安排了一些事情。但是,由于某些情况,代码决定中止该执行(因为不再需要它),或者决定将其重新安排到另一个时间。问题是如何使用 Python 的 asyncio
?
来实现它
如果您熟悉 JavaScript,我正在寻找 setTimeout()
和 clearTimeout()
的等价物。
来自您链接的docs:
An instance of asyncio.TimerHandle
is returned which can be used to cancel the callback.
并且来自 asyncio.Handle
的 docs,asyncio.TimerHandle
的超类:
cancel()
Cancel the callback. If the callback has already been canceled or executed, this method has no effect.
所以只需调用句柄的cancel
方法即可。
如果我schedule a callback using loop.call_later()
(或loop.call_at()
,行为相同),是否可以取消它的执行?
为什么?假设我在一分钟后 运行 安排了一些事情。但是,由于某些情况,代码决定中止该执行(因为不再需要它),或者决定将其重新安排到另一个时间。问题是如何使用 Python 的 asyncio
?
如果您熟悉 JavaScript,我正在寻找 setTimeout()
和 clearTimeout()
的等价物。
来自您链接的docs:
An instance of
asyncio.TimerHandle
is returned which can be used to cancel the callback.
并且来自 asyncio.Handle
的 docs,asyncio.TimerHandle
的超类:
cancel()
Cancel the callback. If the callback has already been canceled or executed, this method has no effect.
所以只需调用句柄的cancel
方法即可。