我想触发该月一周的倒数第二天。
通常,这是该月的最后一个星期五(例如:30/06/2017)
0 0 0 ? * FRIL
我想要倒数第二个(例如:23/06/2017)
0 0 0 ? * FRIL-1
但是此语法返回与之前相同的结果(使用 Quartz 调度程序和 cronmaker)
该月一周的倒数第二天可以出现在该月的第三周或第四周。 所以是这样的:
either : 0 0 0 ? * FRI#3
or : 0 0 0 ? * FRI#4
你有什么建议吗?
我认为你无法使用 cron 语法来表达这一点。
不过,我可以想到一些解决方法:
您可以将工作安排在每个星期五,并在继续之前有一些工作逻辑来检查它是否实际上是倒数第二个。
另一个选择是为上周五创建一个虚拟 cron 触发器,检索“下一次触发时间”,从该日期减去 7 天并使用该确切日期创建实际触发器 - 但你必须这样做每周(通过预先安排几个触发器,或者让您的作业在每次运行后重新安排)。
对于未来的搜索者,ChronoX 项目可能会帮助您表达这种时间模式;请查看 chronox.tech 或 https://github.com/RobbieL-nlp/chronox-python;