我有几条路线看起来像:
from("quartz://" + getJobId() + "?cron=" + cronExpression + "&stateful=true")
.routeId(getJobId())
.autoStartup(false)
.to(getRouteTo());
这些路由可以从管理控制台启动和停止。
我遇到的问题如下:
如果一条路线配置为每天 17:00 运行,目前如果我的路线在 17:00 之后开始,
quartz 注意到它应该在 17:00 运行,并将尝试恢复错过的执行。
我不希望这种情况发生,我想要的是:
- 我在day1 17:00之前开始我的路线,该作业将在day1 17:00触发
- 我在第一天 17:00 后开始路线,该作业应在第二天 17:00 触发
这和我选择有状态的工作有关吗?
我选择有状态作业以避免同一作业的并发执行。
根据克劳斯的建议,也许以下内容可以作为石英作业的参数(假设您使用的是org.quartz.SimpleTrigger http://www.quartz-scheduler.org/api/1.8.5/org/quartz/SimpleTrigger.html):
trigger.misfireInstruction=org.quartz.SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT
编辑:根据土壤工作者的评论,以上内容应该是:
触发器.misfireInstruction=2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)