有没有Python模块可以从crontab风格的时间定义中获取下一个运行时间?

6 投票
1 回答
1933 浏览
提问于 2025-04-16 07:08

我正在写一个仪表盘应用程序,需要找出一个项目“有效”的时间,也就是说,什么时候应该用一个新的值来替代它(有可能出现错误,导致下一个值根本不会到来)。

因为我知道产生数据的过程的时间安排,所以我可以把有效定义为“直到下一个该运行的时间”。

我觉得用 crontab 格式来指定时间安排非常简洁(也就是说,容易存储在数据库里),而且也容易理解。

最后的问题是:有没有一个 Python 模块,可以在给定当前时间和一个 crontab 规范(比如“25 5 * * *”)的情况下,返回下一个运行时间的日期时间?

1 个回答

3

我在使用这段代码时遇到了一些问题(来自 http://www.koders.com/python/fidA55A9DB55093A78DD26B55C606B267B2C5063A79.aspx?s=config),并且修复了一些问题。之前在从一个月切换到下一个月时会出错。现在,next_run 运行得很好,但 prev_run 在从一个月切换到上一个月时却卡住了(它没有失败,而是陷入了一个循环中)。

这是我建立的一个 git 仓库,用来继续处理这个问题:

https://github.com/RFDaemoniac/crontab_parser

撰写回答