繁体   English   中英

如何在Quartz Scheduler中添加重试次数和重试间隔(以秒为单位)

[英]How to add number of retries and retry interval in seconds in Quartz Scheduler

我正在使用Quartz的JDBCJobStore 我使用CronScheduleBuilder.cronSchedule()将工作详细信息,触发器信息添加到表中。 如果任何计划的作业失败,则在重试次数和重试间隔一定的情况下,我需要对其进行重试 因此,如何将这些参数添加到作业表中?

据我所知,Quartz无法做到这一点。 您将必须自己进行管理。

如果任何作业计划程序失败

我认为以上行指出任何计划的作业失败。 触发器立即触发关联的作业开始运行。 因此,这里有2种失败的可能性。

  • 执行作业时,将使调度程序硬关闭。

Quartz可以做到最好。 我们为每个作业设置了请求-恢复属性。 如果将其设置为true,则告诉石英,“如果调度程序在执行过程中硬关机,则在下次启动时在调度程序中恢复/重新运行此作业”。 关于此属性的信息在这里

  • 作业在执行期间引发了异常。

(在我们的业务逻辑中,这可能意味着它已经失败了。(注意:Quartz不会认为这项工作是失败的。您必须在工作的生命周期中确定由于此异常而导致工作失败)。

您可以通过在try / catch块中将job的exeucute()方法中的所有代码包括在内来处理此问题。 如果发生任何严重异常,在catch块内,我们将以一种方式来处理它,即我们希望重新安排该作业(即使该作业再次重试)。

因此,为此,您始终可以创建一个新的jobdetail和触发器(通过使用失败的job的jobExecutionContext中的某些参数)来重新创建/重新安排该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM