【问题标题】:Triggers misfire in Quartz scheduler在 Quartz 调度程序中触发失火
【发布时间】:2018-10-04 10:14:47
【问题描述】:

有什么方法可以在系统重新上线后恢复 Quartz 中的触发器?

我们有一些预定的触发器(频率间隔为 6 小时),有时我们的系统出现故障,它会跳过这些触发器的执行。

任何人都可以建议是否可以使用 Quartz 调度程序来恢复触发那些在停机期间错过的事件。

【问题讨论】:

  • 您是否尝试过使用持久作业存储?你用的是哪个job store?
  • 我们正在使用 org.quartz.impl.jdbcjobstore.JobStoreTX。

标签: java quartz-scheduler quartz


【解决方案1】:

在定义触发器时,您应该在触发器中包含“MISFIRE_INSTRUCTION”。以下示例显示 MISFIRE_INSTRUCTION_FIRE_NOW

Trigger trigger = newTrigger().
    startAt(DateUtils.addSeconds(new Date(), -10)).
    withSchedule(
        simpleSchedule().
            withMisfireHandlingInstructionFireNow()  //MISFIRE_INSTRUCTION_FIRE_NOW
        ).
    build();

详细解释:see this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多