Quartz scheduler Quartz调度程序管理页面:有关错误触发的信息

Quartz scheduler Quartz调度程序管理页面:有关错误触发的信息,quartz-scheduler,monitoring,Quartz Scheduler,Monitoring,我们有一个使用quartz 2.2.1的Java应用程序(ESB),我们使用它来调度数百个用户作业 我想在我的应用程序中为我们的用户构建监控页面(或调度程序管理页面),以便他们可以查看quartz调度程序是否运行良好,或者该组件中是否存在任何问题 quartz是否为此提供任何监控API?有谁能告诉我们,根据您的经验,我们应该在此监控(或管理)页面中显示哪些数据点?我能想到的几点: 计划程序状态(运行|暂停|关闭) 使用“上次启动时间”和“下次启动时间”信息运行的作业数 线程池实现及其大小 JDB

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

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

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

  • 计划程序状态(运行|暂停|关闭)
  • 使用“上次启动时间”和“下次启动时间”信息运行的作业数
  • 线程池实现及其大小
  • JDBCJobStore配置详细信息
  • 是否有一种方法可以显示有关错误触发的信息?我没有看到任何API向我提供有关错误触发的信息。谁能告诉我如何从调度程序获取此信息


    在此方面的任何帮助都将不胜感激。

    您在这里列举了许多不同的问题

    计划程序状态(1):

    使用…运行的作业数(2)请参阅


    关于“失火的触发器”,您可以使用,特别是可能对您有所帮助。

    您在这里列出了许多不同的问题

    计划程序状态(1):

    使用…运行的作业数(2)请参阅


    关于“错误触发的触发器”,您可以使用,特别是可能对您有所帮助。

    TriggerListener.html#TriggerMsfired是否会被调用,即使触发器设置为忽略错误触发指令?我已经尝试过了,但是从Quartz的代码来看,对于
    RAMJobStore
    ,它似乎不会被调用用于
    MISFIRE\u指令\u IGNORE\u MISFIRE\u策略
    ,但是对于
    JDBCJobStore
    您的情况,它似乎会被调用。请更新以防它不起作用。另外请注意,这可能有助于您的监控。TriggerListener.html#TriggerMsfired是否会被调用,即使触发器设置为忽略缺火指令?我已经尝试过了,但是从Quartz的代码来看,对于
    RAMJobStore
    ,它似乎不会被调用用于
    MISFIRE\u指令\u IGNORE\u MISFIRE\u策略
    ,但是对于
    JDBCJobStore
    您的情况,它似乎会被调用。请更新,以防它不起作用。还请注意,这可能对您的监控有用。
    Scheduler sched =...
    sched.isInStandbyMode();
    sched.isStarted();
    sched.isShutdown();
    
    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);
    
          }
    
        }
    
    Scheduler sched =...
    sched.getMetaData().getThreadPoolClass()
    sched.getMetaData().getThreadPoolSize()