python - 是否有用于解析 AWS cron 字符串并将其转换为日历日期的 python 库?
问题描述
我想列出从调用 boto3 api 调用返回的所有 cron 表达式的列表。获取该列表并将其转换为当月的日历日期。这样我就可以使用后端的日期来查看日历上的事件。
我目前面临的问题是我在 python 中找不到用于解析 AWS cron 字符串的库,而且绝对不是一个同时进行解析和 cron 到日期转换的库。
有谁知道任何用于此类工作的 python 库?
AWS cron 字符串不同于 cron/crontab。
https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html
cron(Minutes Hours Day-of-month Month Day-of-week Year)
通配符
,(逗号)通配符包括附加值。在月份字段中,JAN、FEB、MAR 将包括一月、二月和三月。
-(破折号)通配符指定范围。在 Day 字段中,1–15 将包括指定月份的第 1 天到第 15 天。
*(星号)通配符包括字段中的所有值。在“小时”字段中,* 将包括每小时。
/(正斜杠)通配符指定增量。在分钟字段中,您可以输入 1/10 以指定每隔 10 分钟,从一小时的第一分钟开始(例如,第 11、21 和 31 分钟)。
这 ?(问号)通配符指定一个或另一个。在 Day-of-month 字段中,您可以输入 7,如果您不在乎第七个是星期几,您可以输入 ? 在星期几字段中。
Day-of-month 或 Day-of-week 字段中的 L 通配符指定月或周的最后一天。
Day-of-month 字段中的 W 通配符指定工作日。在 Day-of-month 字段中,3W 指定最接近该月第三个工作日的日期。
限制
您不能在同一个 cron 表达式中指定 Day-of-month 和 Day-of-week 字段。如果在其中一个字段中指定值,则必须使用 ? (问号)在另一个。
不支持导致速率快于 5 分钟的 Cron 表达式。
解决方案
pyawscron:
https://github.com/pitchblack408/pyawscron
https://pypi.org/project/pyawscron/
这是来自打字稿项目的python端口:
https://github.com/beemhq/aws-cron-parser
cron = '23,24,25 17,18 25 MAR/4 ? 2020,2021,2023,2028'
cron = AWSCron(cron)
dt = datetime.datetime(2020, 5, 9, 22, 30, 57, tzinfo=datetime.timezone.utc)
dt = cron.occurrence(dt).next()
推荐阅读
- jquery - Jquery UI 可排序和可调整大小的 Div
- python - 迭代数据框时修改行值的值
- javascript - 在页面对象方法中共享断言
- amazon-web-services - AWS HTTP API 到 WebSocket API 桥/异步 Lambda
- php - 如何将数组中的值添加到具有相同键的另一个数组中?
- docker - 在本地网络上看到 Docker-Composer
- elasticsearch - 使用 Postman 6.7 的 Elasticsearch 6.6 批量插入
- eclipse - 在 ecilipse 中导入现有项目而不复制它会发生什么?
- jquery - 如何修复表头?
- javascript - 在 css 中的确切位置显示地图标记