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

Quartz2.x增、删、改工具类

发布时间:2020-12-15 03:19:19 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package com.a2563; import static org.quartz.CronScheduleBuilder.cronSchedule;import static org.quartz.JobBuilder.newJob;import static org.qu

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

package com.a2563;
 
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
 
import org.apache.logging.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;
/**
 * 类名:QuartzManager <br/>
 * 功能:<br/>
 * 详细:Quartz增、删、改工具类 <br/>
 * 作者: Tliu <br/>
 * 日期:2015-7-17 <br/>
 */
public class QuartzUtils {
 
    private Logger log = null;
 
    private Scheduler scheduler = null;
     
    public static final String DATA_KEY = "STATE_DATA";
     
    public QuartzUtils (){
        try {
            log = org.apache.logging.log4j.LogManager.getLogger();
            scheduler = new StdSchedulerFactory().getScheduler();
            log.info("初始化调度器 ");
        } catch (SchedulerException ex) {
            log.error("初始化调度器=> [失败]:" + ex.getLocalizedMessage());
        }
    }   
    public void addJob(String name,String group,Class<? extends Job> clazz,String cronExpression) {                  
        try {      
            //构造任务
            JobDetail job = newJob(clazz)
                    .withIdentity(name,group)                 
                    .build();
             
            //构造任务触发器
            Trigger trg = newTrigger()
                    .withIdentity(name,group)
                    .withSchedule(cronSchedule(cronExpression))
                    .build();       
             
            //将作业添加到调度器
            scheduler.scheduleJob(job,trg);
            log.info("创建作业=> [作业名称:" + name + " 作业组:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("创建作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");
        }
    }
     
    public void removeJob(String name,String group){
        try {
            TriggerKey tk = TriggerKey.triggerKey(name,group);
            scheduler.pauseTrigger(tk);//停止触发器  
            scheduler.unscheduleJob(tk);//移除触发器
            JobKey jobKey = JobKey.jobKey(name,group);
            scheduler.deleteJob(jobKey);//删除作业
            log.info("删除作业=> [作业名称:" + name + " 作业组:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("删除作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");
        }
    }
     
    public void pauseJob(String name,String group){
        try {
            JobKey jobKey = JobKey.jobKey(name,group);
            scheduler.pauseJob(jobKey);
            log.info("暂停作业=> [作业名称:" + name + " 作业组:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("暂停作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");
        }
    }
     
    public void resumeJob(String name,group);         
            scheduler.resumeJob(jobKey);
            log.info("恢复作业=> [作业名称:" + name + " 作业组:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("恢复作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");
        }       
    }
     
    public void modifyTime(String name,String cronExpression){        
        try {
            TriggerKey tk = TriggerKey.triggerKey(name,group);
            //构造任务触发器
            Trigger trg = newTrigger()
                    .withIdentity(name,group)
                    .withSchedule(cronSchedule(cronExpression))
                    .build();       
            scheduler.rescheduleJob(tk,trg);
            log.info("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");
        }
    }
 
    public void start() {
        try {
            scheduler.start();
            log.info("启动调度器 ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("启动调度器=> [失败]");
        }
    }
 
    public void shutdown() {
        try {
            scheduler.shutdown();
            log.info("停止调度器 ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("停止调度器=> [失败]");
        }
    }
}
来自:http://my.oschina.net/u/1859292/blog/504225

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

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

    推荐文章
      热点阅读