Python sched 取消所有事件的替代方案
我在找一个可以替代sched模块的东西,这样我就能随时取消所有的事件。sched模块只能通过事件的ID来取消单个事件(这个ID是在你安排事件时,调度器返回给你的)。如果有人能推荐一些Python中可以替代sched的选项,我会非常感激。谢谢!
托尼
1 个回答
12
在 Python 2.6 中,有一个只读属性叫做 queue
,它会返回一个即将发生的事件列表。所以,如果你想取消所有事件,可以使用以下代码:
s = sched.scheduler(time.time, time.sleep)
map(s.cancel, s.queue)
关于 Python 3 的更新:
在 Python 3 中,map() 函数返回的是一个迭代器。因此,你需要把这个对象转换成列表才能使用。
s = sched.scheduler (time.time, time.sleep)
list(map(s.cancel, s.queue))