2017-03-01 96 views
1

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

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

但是在正常执行期间,CompleteExecutionInstruction始终是NOOP。如果我抛出异常或完全执行,这并不重要。如果我成功了,我期待像COMPLETE这样的东西,或者如果我抛出异常,我会期待ERROR。

有没有人有这方面的经验?

回答

1

触发器状态决不会反映您作业的上一次执行状态,因此您无法指望触发器状态为COMPLETE或ERROR。

如果你想监视你的工作,我建议你看看石英JobListener接口。此接口允许您截取并处理您可能感兴趣的所有作业执行事件。例如,您可能需要实现一个作业侦听器,将截获的作业执行事件存储在数据库中,然后可以查询此数据库以获取上一份作业执行状态等。

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

QuartzDesk GUI