0

我正在使用 quart 库在 java 中进行调度。我写了一个这样的触发器

trigger = newTrigger().withIdentity("myTrigger", "myGroup").startNow() .withSchedule(cronSchedule(croneExpression).withMisfireHandlingInstructionFireAndProceed()) .forJob("myJob","myGroup") .build();

现在,当我使用 cronexpression 设置调度程序时,动态生成的调度程序运行正常。但是当服务器在调度程序设置为触发期间关闭时,quartz_trigger 中的值,即表中的 next_fire_time 在作业执行时间之后发生更改。因此,调度程序的失火不起作用。所以我的目的没有解决。那么可能是什么问题?是要设置的quartz.properties 中的任何属性。我没有使用 job.xml(jobInitializer) 来设置调度程序。

4

1 回答 1

1

quartz_trigger 中的值,即表中的 next_fire_time 在作业执行>时间后更改

是的,这实际上是石英在发生失火时所做的。

根据创建触发器时提供的失火指令,quartz 计算必须执行失火执行的次数。根据您的代码,您已将失火指令设置为“fireAndProceed”,因此 Quartz 只执行第一个失火执行(并忽略所有后续剩余的失火)。例如:如果您将触发器设置为在下午 2 点到下午 4 点之间以 30 分钟的间隔触发,并且如果调度程序在下午 2 点 29 分到下午 3.29 期间关闭,则只会执行一个 2.30 pm 的触发器执行(以及 3.pm 的执行)将被忽略)。

希望这能回答你的问题。:-)

于 2013-06-08T07:51:40.987 回答