Quartz侦听器的jobWasExecuted中出现异常,使作业在实际完成时仍处于运行状态



我有一个带有Quartz调度器的网络应用程序。在我的应用程序的一个页面中,我显示了当前正在执行的作业。今天,一个作业失败了,由于一些错误的Hibernate问题,我们在我的作业监听器的jobWasExecuted方法中得到了一个异常。由于我在互联网或Quartz文档中没有发现任何内容,我去做了一些测试,发现如果在这样的侦听器方法(jobWasExecuted)中发生异常,Quartz会一直告诉你作业当前正在执行,尽管它实际上已经完成。

有人见过或听说过类似的东西吗?任何建议的解决方案,或者我应该直接将所有这些方法内容包装在一个巨大的try-catch中以防止这种错误行为吗?

谢谢!

我可以在本地复制(使用Quartz 2)。

将jobWasExecuted方法语句封装在try-catch中似乎有效(在出现异常的情况下,作业将不再被识别为随后执行)。

在org.quarter.core.JobRunShell#中继续执行并执行

complete(true);

如果你觉得这是一个错误,你可能想在https://github.com/quartz-scheduler/quartz/issues.