Quartz 之 scheduler 类的方法 【实现一个 quartz 管理类】

pause : 暂停一个触发器。如果是持久化的 quartz,此触发器的状态会被写到库中,哪怕是重启应用后,

也不会触发,因为状态是持久化的。

若更新 quartz 配置文件中的该触发器的属性,如 cron 表达式,则内存和数据库中已持久化的数据都不会被更新。


resume : 重置一个触发器的状态为运行状态,下次可调度。对一个不处于 pause 状态的触发器调用此方法无效果。此方法会改变触发器的持久化状态。


remove : 删除一个触发器(若是 cron 触发器,则它关联的 job 也会被删除),此处,删除的含义是,内存中删除,若是持久化 quartz,则库中的 trigger 和 job 也会被删除。

重启应用后,若原来的配置文件不变更,则被删除的 trigger 和 job 会被加回来,并且处于可触发的状态。


以下是完整的管理类。

package org.summer.spi.quartz;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.summer.exception.spe.SummerException;
import org.summer.spi.spe.JobTriggerManageService;

public class JobTriggerManagerServiceImpl implements JobTriggerManageService {

	private Scheduler scheduler;

	private final Logger logger = LoggerFactory.getLogger(this.getClass());
	public void setScheduler(Scheduler scheduler) {
		this.scheduler = scheduler;
	}
	
	public JobTriggerManagerServiceImpl() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public List
    
    
     
     > getQrtzTriggers()
	{
		try
		{
			String[] triggerGroupNames = scheduler.getTriggerGroupNames();
			List
     
     
      
      
       
       > triggersInfo = new ArrayList();		
			String[] triggerNames = null;
			Trigger trigger = null;		
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			for(int i=0;i
       
       
         curInfo = new HashMap<>(); trigger = scheduler.getTrigger(triggerNames[j],triggerGroupNames[i]); if(trigger instanceof CronTrigger) { curInfo.put("cron", ((CronTrigger)trigger).getCronEx
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值