Quartz Scheduler Administration Page:有关失火触发器的信息

时间:2016-06-07 22:05:11

标签: quartz-scheduler monitoring

我们有一个使用quartz 2.2.1的Java应用程序(ESB),我们使用它来安排数百个用户作业。

我想在我的应用程序中为用户构建监控页面(或调度程序管理页面),以便他们可以查看quartz调度程序是否运行正常或此组件中是否存在任何问题。

quartz是否为此提供了任何监控API?任何人都可以根据您的经验告诉我们应该在此监控(或管理)页面中显示哪些数据点?我能想到的一些观点:

  1. 计划程序状态(正在运行|已暂停|关闭)。
  2. 使用"以前的消防时间"和#34; Next FireTime"信息。
  3. 线程池实现及其大小。
  4. JDBCJobStore配置详细信息。
  5. 有没有办法显示有关失误的触发器的信息?我没有看到任何API提供有关失火触发器的信息。谁能告诉我如何从调度程序中获取此信息?

    对此方面的任何帮助表示赞赏。

1 个答案:

答案 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可能会对您有所帮助。