长时间定时执行任务的过程中会不会出现累积的时间误差

2021-09-14 21:58:01 +08:00
 bleutail
from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()
sched.add_job(datetime_confirm,'interval',days = 1, start_date=start_date)
sched.start()```

如果长时间运行时,每次任务启动的时间和期望之间的误差会不会越来越大?如果运行一年误差在分钟级我觉得应该没有问题
或者用 cron 可能好点?比如

sche.add_job(datetime_confirm, 'cron', hour='0',minute='0', second='0')

1333 次点击
所在节点    Python
3 条回复
xieqiqiang00
2021-09-14 23:56:02 +08:00
这问题看得我莫名其妙,定时器难道不是定时检查时间看有没有任务吗,有任务就执行,就算上一个任务都没结束都不应该影响下一个任务的启动
chengyiqun
2021-09-15 09:18:39 +08:00
一般是根据策略的, 1 楼说的是一种情况, 楼主说的是另一种情况, 要看定时器具体策略.
bleutail
2021-09-15 16:45:21 +08:00
@xieqiqiang00 是的,但是如果按时间间隔计算的话,比如第一启动在 00:00:00,要求每分钟执行一次,但是计时器计算的不是标准的一分钟可能只有 59 秒,然后重复 n 次以后,程序以为自己仍然在计划里,其实已经落后 n 秒了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX