java - 立即启动并在一定时间间隔后运行的 cron 触发器

标签 java cron cron-task cronexpression crontrigger

我有一个要求,其中我正在编写一个实用程序,该实用程序需要 cron 触发器立即触发,然后在 30 或 40 分钟的定期间隔后触发。现在我的表情是这样的 0 0/40 * * * ?但它会在应用程序开始 40 分钟后启动触发器。在java中实现上述场景的表达式或编程方式应该是什么。

最佳答案

Cron 不具备每 40 分钟运行一次作业的功能。事实上*/40 * * * * 将在每小时的第 40 分钟运行该作业,然后在每小时的第 59 分钟结束时运行,依此类推。因此,作业之间的间隔将为 40 分钟,然后是 20 分钟,依此类推。原因是 60 不能被 40 整除。

40 * * * * 将仅在每小时的第 40 分钟运行该作业(每小时一次)。

另一方面,

*/30 * * * * 确实会每 30 分钟运行一次作业,因为 60 mod 30 = 0

如果您确实想每 40 分钟运行一次作业,您可能需要使用一些更高级的调度程序,例如 fcron ( http://fcron.free.fr/ )。该调度程序真正支持该功能以及其他一些很酷的功能。

回答有关立即触发作业的问题,然后我建议在下一分钟对作业进行编程,并在脚本内部维护一个计数器,并允许脚本仅运行一次。 is脚本执行后,可以智能地将自身从cron中删除。

关于java - 立即启动并在一定时间间隔后运行的 cron 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510893/

相关文章:

java - createImage(int width, int height) 的问题

linux - Crontab 无法识别命令

php - 什么是 "MySQL event"?

linux - 使用 crontab 在固定时间运行我的脚本

mysql - 更新 mysql 表同时改变值

linux - Shell脚本手动运行但不通过cron作业执行

java - 在 Java/Jython 中读取 CSV

java - REST List<Entity> 返回导致错误

Java:如何调用接口(interface)中的implementclass元素?

php - 找到执行 cron 的用户名