cron触发器立即启动,然后在时间间隔后运行
问题描述:
我有一个要求,其中我写了一个实用程序,要求cron触发器立即触发,然后在30或40分钟的定期间隔后触发。现在我的表情就像这样0 0/40 * * *?但在开始申请40分钟后开始触发。在java中实现上述场景的表达式或编程方式应该是什么。cron触发器立即启动,然后在时间间隔后运行
答
Cron没有每40分钟运行一次作业的功能。实际上,*/40 * * * *
, 将在每小时的第40分钟,然后在每小时的第59分钟结束时运行该工作,依此类推。因此,工作间隔时间为40分钟,然后20分钟,等等。原因是60分不到40.
40 * * * *
只会在每小时40分钟(每小时一次)运行该作业。
*/30 * * * *
,另一方面确实会运行,每30分钟的工作,因为60模30 = 0
如果你真的想每40分钟运行一次的工作,你可能需要使用一些更高级的调度,如fcron(http://fcron.free.fr/)。该调度程序真正支持该功能和其他一些很酷的功能。
回答有关立即触发作业的问题,那么我建议在下一分钟只编写作业,并在脚本内维护一个计数器,并允许脚本只运行一次。脚本执行后,它可以智能地从cron中删除它自己。
对这项工作进行编程对我来说确实有窍门。 – dexterousashish