Python sched 取消所有事件的替代方案

4 投票
1 回答
2576 浏览
提问于 2025-04-15 17:27

我在找一个可以替代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))

可以查看 这个链接这个链接 了解更多信息。

撰写回答