[英]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.