java - Spring:如何从 Controller 监控 Quartz Job?

标签 java spring spring-mvc quartz-scheduler

我在 Spring 项目中创建了两个作业,它们在两个不同的时间运行,彼此独立。

public class JobA extends QuartzJobBean
{
    @Override
    protected void executeInternal(JobExecutionContext arg0)throws JobExecutionException 
    {
      // my actual work
    }
}

public class JobB extends QuartzJobBean
{
    @Override
    protected void executeInternal(JobExecutionContext arg0)throws JobExecutionException 
    {
      // my actual work
    }
}

两者在给定时间都运行良好,但我需要提供一些监控功能,通过它我们可以检查作业是否正在运行。
我遇到了JobListener也看过其他资源,但在实现时感到困惑。我不知道如何在 Spring Controller 中使用此监听器,以便我可以在我的 jsp 中监视这两项工作。

更新: 我正在使用 quartz 1.8。如何检查是否有任何工作暂停?有什么方法可以重新启动任何暂停或损坏的作业?

最佳答案

您可以轻松检索您的作业触发状态

quartz 2.x 的示例:

// get the scheduler factory bean from the spring context
Scheduler scheduler = (Scheduler) getApplicationContext().getBean("schedulerFactoryBean");
// get the TriggerKey 
TriggerKey triggerKey = TriggerKey.triggerKey("serviceCronTrigger");
// get the state from the triggerKey
TriggerState triggerState = scheduler.getTriggerState(triggerKey); 

对于 quartz 1.8

根据 API 文档,Scheduler.getTriggerState(String triggerName, String triggerGroup) 可以告诉您特定触发器的状态,并返回以下常量之一:Trigger.STATE_NORMAL, Trigger .STATE_PAUSED、Trigger.STATE_COMPLETE、Trigger.STATE_ERROR、Trigger.STATE_BLOCKED、Trigger.STATE_NONE

 // get the scheduler factory bean from the spring context
 Scheduler scheduler = (Scheduler)   getApplicationContext().getBean("schedulerFactoryBean");
 // get the state 
 int state = scheduler.getTriggerState(triggerName, triggerGroup);

关于java - Spring:如何从 Controller 监控 Quartz Job?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446066/

相关文章:

spring boot 处理大请求体 - 通过多线程处理批量

java - 重试失败的 JDBC 连接

java - HTTP 状态 500 - servlet fitTrackerServlet 的 Servlet.init() 抛出异常

spring - 考虑在你的配置中定义一个 'org.springframework.security.authentication.AuthenticationManager' 类型的 bean

spring - 在 Spring MVC 上有多个表单

spring-mvc - Spring Boot session 处理

java - 如何抑制 Octave io 包加载警告 : "OpenJDK 64-Bit Server VM warning: Archived . .. java.system.class.loader 属性

java - Selenium webdriver 等待,元素不可点击异常

java - 将纯文本存储在 Java 8 闭包中

java - 如何在 tomcat 上的 servlet 下发送 XML 文件?