Quartz 状态作业报告

Ale*_*dru 6 java spring quartz-scheduler spring-boot

我们需要通过只能访问数据库来监控石英作业的状态。石英是否提供了实现这一目标的方法?

阅读文档,在 Trigger 类中,我们有 TriggerState ,它定义了各种状态,ERROR 和 COMPLETE 等。

但在常规执行期间,CompleteExecutionInstruction 始终为 NOOP。我是抛出异常还是完全执行都没有关系。如果我成功了,我期待像 COMPLETE 这样的东西,如果我抛出异常,我期待着 ERROR 之类的东西。

有人对这个有经验么?

Jan*_*vec 5

触发器状态绝不会反映作业的最后执行状态,因此您不能期望触发器状态为 COMPLETE 或 ERROR。

如果您想监控您的作业,我建议您查看 Quartz JobListener接口。该接口允许您拦截和处理您可能感兴趣的所有作业执行事件。例如,您可能希望实现一个作业侦听器,将拦截到的作业执行事件存储在数据库中,然后您可以查询该数据库以获取您的作业的最后作业执行状态等。

您还可以考虑使用现有的 Quartz 调度程序、作业和触发器管理和监控工具。我是QuartzDesk 的原作者,QuartzDesk是这些工具之一。QuartzDesk 是一个完全非侵入式的工具,不需要您以任何方式修改您的应用程序代码,它可以与所有类型的 Java 应用程序和几乎所有 Quartz 版本一起使用。有一个公开的在线演示您可以注册,亲自尝试看看该工具是否满足您的要求。在监控方面,QuartzDesk GUI 会在每个作业和触发器旁边显示一个所谓的健康指示器。该指示器描述了最近 10 个作业/触发器执行的状态(成功、错误、否决),因此您可以快速查看是否有任何最近失败的作业等。您还可以访问单个作业和触发器的完整执行历史记录。如果您想收到任何作业执行相关事件的通知,您可以创建一个执行通知规则,当配置的条件为遇见了。我附上了 GUI 的屏幕截图,其中显示了作业运行状况指标和所选作业的执行历史记录。

石英桌面图形用户界面.