我有什么办法可以在一分钟的确切时间开始运行程序吗?

时间:2020-06-11 11:56:53

标签: python

我想在一分钟的确切开始时间运行程序(例如:1:30:00、1:20:00、1:19:00 [小时,分钟,秒])还有很多类似的问题,但是它们没有将程序链接到定义的时间的情况,而不仅仅是60秒的间隔。其他解决方案使用其他语言。有没有解决此问题的python解决方案?

2 个答案:

答案 0 :(得分:1)

有几个可用选项。这是我所知道的三个:

  1. 您可以使用Python标准库https://docs.python.org/3/library/sched.html
  2. 中的sched包来构建自己的解决方案。
  3. 有一个名为schedule的第三方程序包,具有您请求的定期功能:https://schedule.readthedocs.io/en/stable/
  4. 如注释中所建议,Celery任务队列库具有一个名为“ Celery beat”的组件,您可以使用它来安排定期任务:https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html#guide-beat

请注意,前两个库本质上不是多线程的。我不确定如果作业阻塞主线程并与下一次计划运行重叠,会发生什么情况。您需要为此查阅文档,或确保所有作业都以非阻塞方式运行。

答案 1 :(得分:1)

然后我想您能做的最好的就是在这里结合答案: Python threading.timer - repeat function every 'n' seconds

但是根据当前时间更改等待条件:

from datetime import datetime
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)

在创建线程时,计算要执行多少时间。 然后应该在几毫秒的精度内从指定的时间开始。

欢呼

相关问题