我们有一个使用quartz 2.2.1的Java应用程序(ESB),我们使用它来安排数百个用户作业。
我想在我的应用程序中为用户构建监控页面(或调度程序管理页面),以便他们可以查看quartz调度程序是否运行正常或此组件中是否存在任何问题。
quartz是否为此提供了任何监控API?任何人都可以根据您的经验告诉我们应该在此监控(或管理)页面中显示哪些数据点?我能想到的一些观点:
有没有办法显示有关失误的触发器的信息?我没有看到任何API提供有关失火触发器的信息。谁能告诉我如何从调度程序中获取此信息?
对此方面的任何帮助表示赞赏。
答案 0 :(得分:2)
你在这里命名了许多不同的问题
调度程序状态(1):
Scheduler sched =...
sched.isInStandbyMode();
sched.isStarted();
sched.isShutdown();
使用...运行的作业数量(2)请参阅here
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
for (String groupName : scheduler.getJobGroupNames()) {
for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
String jobName = jobKey.getName();
String jobGroup = jobKey.getGroup();
//get job's trigger
List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey);
Date nextFireTime = triggers.get(0).getNextFireTime();
System.out.println("[jobName] : " + jobName + " [groupName] : "
+ jobGroup + " - " + nextFireTime);
}
}
线程池实现及其大小。(3)
Scheduler sched =...
sched.getMetaData().getThreadPoolClass()
sched.getMetaData().getThreadPoolSize()
关于&#34;失败的触发器&#34;,您可以使用listeners,具体来说TriggerListener.html#triggerMisfired可能会对您有所帮助。