有没有办法创建一个 cron 表达式来根本不运行作业?
我想用这个表达:
0 0 0 1 1 ? 3099
...这实际上可以完成这项工作,因为它将在 3099 年运行,但是有没有更干净的方法来做到这一点?
如果即使在遥远的将来,您仍然在寻找强大的东西,请尝试https://stackoverflow.com/a/13938099/1601531,我建议在 crontab 条目中使用February 31st,而这并不是有意的执行。
0 0 5 31 2 ?
我需要一个有效的 cron 计划(
?
语法在我的系统中不起作用)来解析真实的日期,但实际上是“从不”。我目前最好的解决方案是选择最近的闰年,看看 2 月 29 日是哪一天。 2016 年 2 月 29 日是星期一,所以下一个星期一 2 月 29 日目前是最远的。
0 0 29 2 1
产生接下来的 5 个触发器:
02/29/2044 00:00:00Z
02/29/2072 00:00:00Z
02/29/2112 00:00:00Z
02/29/2140 00:00:00Z
02/29/2168 00:00:00Z
虽然不完美,但已经可以了。
选择过去的日期。
这种事永远不会再发生了。除非今天是土拨鼠日。只是不要选择土拨鼠日。
我为您的问题创建了一个副本(点击此处查看),并同意您最初的建议。经过测试,Quartz 似乎永远不会执行年份超过 2300 的 cron 表达式。
我需要类似的包含秒数的东西,我已经使用 DevToys 应用程序生成了一个 CRON 表达式,该表达式将在很远的将来发生:https://devtoys.app/。
打开 crontab 文件并删除该条目是适当的方法。或者您也可以将 cronjob 调用的可执行文件模拟链接到空 shell 脚本。
请告诉我们有关您的设置的更多信息,然后我们会看到...
将其注释掉 - 在其前面放置
#
符号。非常有用,特别是如果您担心到 3099 年您会忘记所做的更改。
另一种可能性是让它执行虚拟命令,例如
true rm -rf /
。