加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring:如何从控制器监视Quartz Job?

发布时间:2020-12-15 05:01:12 所属栏目:Java 来源:网络整理
导读:我在 Spring项目中创建了两个作业,这两个作业在两个不同的时间相互独立运行. public class JobA extends QuartzJobBean{ @Override protected void executeInternal(JobExecutionContext arg0)throws JobExecutionException { // my actual work }} 和 publi
我在 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.如何检查是否有任何工作停止?我们有什么方法可以重新启动任何停止或破坏的工作?

解决方法

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

石英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);

适用于石英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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读