我正在尝试安排一个重复事件在 Python 3 中每分钟运行一次。
我看过课程 sched.scheduler
但我想知道是否还有其他方法可以做到这一点。我听说我可以为此使用多个线程,我不介意这样做。
我基本上是在请求一些 JSON 然后解析它;它的值随时间变化。
要使用 sched.scheduler
我必须创建一个循环来请求它安排 even 运行一小时:
scheduler = sched.scheduler(time.time, time.sleep)
# Schedule the event. THIS IS UGLY!
for i in range(60):
scheduler.enter(3600 * i, 1, query_rate_limit, ())
scheduler.run()
还有什么其他方法可以做到这一点?
原文由 Humphrey Bogart 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
threading.Timer
,但它也会安排一次性事件,类似于.enter
调度程序对象的方法。将一次性调度程序转换为周期性调度程序的正常模式(在任何语言中)是让每个事件以指定的时间间隔重新安排自己。例如,对于
sched
,我不会像你正在做的那样使用循环,而是像这样:并通过电话启动整个“永远的周期性时间表”
或者,我可以使用
threading.Timer
而不是scheduler.enter
,但模式非常相似。如果您需要更精细的变化(例如,在给定时间或在特定条件下停止定期重新安排),那么使用一些额外参数并不难。