10

我目前正在 python 中运行一个 django web 应用程序,我将用户输入的 cron 条目存储到数据库中。我想知道是否有任何 python 库/包可以在我将这些条目存储到数据库之前对其进行验证。通过验证我的意思是正确的语法以及正确的范围(例如:月份不能是 15)。有没有人有什么建议?谢谢!

4

2 回答 2

22

Croniter软件包似乎可以满足您的需求文档中的示例:

>>> from croniter import croniter
>>> from datetime import datetime
>>> base = datetime(2010, 1, 25, 4, 46)
>>> iter = croniter('*/5 * * * *', base)  # every 5 minites
>>> print iter.get_next(datetime)   # 2010-01-25 04:50:00
>>> print iter.get_next(datetime)   # 2010-01-25 04:55:00
>>> print iter.get_next(datetime)   # 2010-01-25 05:00:00
>>>
>>> iter = croniter('2 4 * * mon,fri', base)  # 04:02 on every Monday and Friday
>>> print iter.get_next(datetime)   # 2010-01-26 04:02:00
>>> print iter.get_next(datetime)   # 2010-01-30 04:02:00
>>> print iter.get_next(datetime)   # 2010-02-02 04:02:00

根据代码,它似乎也对输入的格式进行验证。您可能已经遇到过这个问题,但以防万一:)

于 2012-10-30T19:48:59.117 回答
12

由于接受的答案很老,所以同一个库croniter.is_valid()现在有一个方法。来自文档

>>> croniter.is_valid('0 0 1 * *')  # True
>>> croniter.is_valid('0 wrong_value 1 * *')  # False
于 2020-05-28T20:22:17.643 回答