java - Quartz 状态作业报告

标签 java spring spring-boot quartz-scheduler

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

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

但在常规执行期间,CompleteExecutionInstruction 始终为 NOOP。我抛出异常或者完全执行都没有关系。如果成功,我期待类似“完成”的结果;如果抛出异常,则期待“错误”。

有人有这方面的经验吗?

最佳答案

触发器状态绝不反射(reflect)作业的最后执行状态,因此您不能期望触发器状态为“完成”或“错误”。

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

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

QuartzDesk GUI .

关于java - Quartz 状态作业报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42532331/

相关文章:

JavaFx 阻止新窗口窃取焦点

java - 如何使用嵌入式 Jetty 在 Spring Boot 中禁用 org.eclipse.jetty.server.error_page.global 映射到/错误

java - Spring JDBC 和 MySQL 中无法使用 SET 关键字

java - Libgdx opengl 绘制线条示例

java - 在Spring中实现后台进程

java - 监控应用程序框架

java - 打包 Spring 管理的 Axis2 Web 服务客户端

java - 无法从 Spring Boot 应用程序验证 mongodb

Spring Cron Expression 每周二晚上 9 点运行?

java - 将数据从自定义对话框类传输到父类