如何解决Python sched.scheduler应该每5分钟运行一次,但不会-*有时*
TLDR;
在某些情况下,我的代码无法按计划运行-仅在按下键时才会继续。
我对python有点生锈。我遇到了一个问题,在大多数情况下,我的代码可以正常工作,但是有时我的函数无法按5分钟的时间表运行。例如,我看一下执行窗口,发现过去15分钟以上没有打印任何内容。当我按PowerShell中的任意键时,该程序似乎“唤醒”并继续执行。
我怀疑这可能是PowerShell而不是Python的问题。
最小可复制示例:
import sched
import datetime as dt
import time
# Funciton I expect to run every 5 minutes
def f(sc):
print(dt.datetime.now(),"in f()")
s.enter(300,1,f,(sc,))
# Creating the schedule
s = sched.scheduler(time.time,time.sleep)
s.enter(1,(s,))
s.run()
预期输出:
运行:python ./Test.py
2020-08-12 14:01:##.###### in f()
2020-08-12 14:06:##.###### in f()
2020-08-12 14:11:##.###### in f()
2020-08-12 14:16:##.###### in f()
2020-08-12 14:21:##.###### in f()
2020-08-12 14:26:##.###### in f()
# ... and so on
观察到的输出:
2020-08-12 14:01:##.###### in f()
2020-08-12 14:06:##.###### in f()
# Now at 14:23 I realize the program is not running,so I press some key...
2020-08-12 14:23:##.###### in f()
2020-08-12 14:28:##.###### in f()
# And it continues to run every 5 minutes from the time it resumed
我是否遇到一些奇怪的计时问题,其中操作系统切换到另一个正在运行的程序并错过了5分钟标记?有没有更好的办法来安排任务在python中每5分钟运行一次?我希望能够在该程序运行时在计算机上执行其他操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。