Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Quartz Scheduler中添加重试次数和重试间隔(以秒为单位)_Java_Quartz Scheduler - Fatal编程技术网

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

Java 如何在Quartz Scheduler中添加重试次数和重试间隔(以秒为单位),java,quartz-scheduler,Java,Quartz Scheduler,我正在使用Quartz的JDBCJobStore。我使用CronScheduleBuilder.cronSchedule()将作业详细信息、触发器信息添加到表中如果任何计划作业失败,我需要在给定重试次数和重试间隔的情况下重试该作业。那个么,如何才能将这些参数添加到作业的表中呢?据我所知,Quartz无法做到这一点。你必须自己管理它 如果任何作业计划程序失败 我猜想上面这一行是指任何预定作业的失败。 一旦触发,关联的作业就会开始运行。因此,这里有两种失败的可能性 当作业正在执行时,调度程序被硬关

我正在使用Quartz的
JDBCJobStore
。我使用
CronScheduleBuilder.cronSchedule()
将作业详细信息、触发器信息添加到表中如果任何计划作业失败,我需要在给定重试次数和重试间隔的情况下重试该作业。那个么,如何才能将这些参数添加到作业的表中呢?

据我所知,Quartz无法做到这一点。你必须自己管理它

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

我猜想上面这一行是指任何预定作业的失败。 一旦触发,关联的作业就会开始运行。因此,这里有两种失败的可能性

  • 当作业正在执行时,调度程序被硬关闭
石英能在最好的状态下处理这个问题。我们为每个作业设置了请求恢复属性。 如果设置为true,我们将告诉quartz,“如果调度程序在执行期间硬关机,则在调度程序下次启动时恢复/重新运行此作业”。有关此属性的详细信息

  • 作业在执行期间引发了异常
在我们的业务逻辑中,这可能意味着它失败了。(注意:不要假定此作业失败。您必须在作业的生命周期中确定它是因为此异常而失败的。)

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


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

您尝试过什么吗?