【问题标题】:Start quartz trigger next day at specified time第二天在指定时间启动石英触发器
【发布时间】:2016-04-28 04:15:26
【问题描述】:

如何暂停我的石英触发器并在第二天的指定开始时间启动它? 例如。我的 cron 表达式是 * 0/20 15-00 * * ?因此,当我暂停触发器时,它应该在第二天 15:00 开始。

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    一般来说,暂停触发器不会影响其下一次触发时间。

    即如果您有一个每天在 6 点运行的 CronTrigger,并且您在当天触发之前暂停了该触发器,则它不会触发。

    但由于下一次触发时间未更改,因此该触发器应在再次取消暂停后立即触发或执行其MisfireInstruction。触发触发器还是执行其 MisfireInstruction 取决于 MisfireThreshold。

    对于 CronTrigger,您可以在取消暂停 CronTrigger 之前调整 nextFireTime。 (见CronTrigger.setNextFireTime())

    【讨论】:

    • 如何将 nextfiretime 设置为第二天的触发开始时间?
    • 我建议您执行以下操作:每次取消暂停触发器之前,请执行 cronTrigger.setNextFireTime(cronTrigger.getFireTimeAfter (new Date()))。这只是将 CronTrigger 的下一个触发时间设置为现在之后与关联的 CronExpression 匹配的下一个有效时间。
    • 非常感谢。我会试试这个并回复你。
    猜你喜欢
    • 2011-09-02
    • 2021-08-10
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多