中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Quartz2.x增、刪、改工具類

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
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();
             
            //構造任務觸發(fā)器
            Trigger trg = newTrigger()
                    .withIdentity(name, group)
                    .withSchedule(cronSchedule(cronExpression))
                    .build();       
             
            //將作業(yè)添加到調度器
            scheduler.scheduleJob(job, trg);
            log.info("創(chuàng)建作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("創(chuàng)建作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "]=> [失敗]");
        }
    }
     
    public void removeJob(String name, String group){
        try {
            TriggerKey tk = TriggerKey.triggerKey(name, group);
            scheduler.pauseTrigger(tk);//停止觸發(fā)器  
            scheduler.unscheduleJob(tk);//移除觸發(fā)器
            JobKey jobKey = JobKey.jobKey(name, group);
            scheduler.deleteJob(jobKey);//刪除作業(yè)
            log.info("刪除作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("刪除作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "]=> [失敗]");
        }
    }
     
    public void pauseJob(String name, String group){
        try {
            JobKey jobKey = JobKey.jobKey(name, group);
            scheduler.pauseJob(jobKey);
            log.info("暫停作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("暫停作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "]=> [失敗]");
        }
    }
     
    public void resumeJob(String name, String group){
        try {
            JobKey jobKey = JobKey.jobKey(name, group);         
            scheduler.resumeJob(jobKey);
            log.info("恢復作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("恢復作業(yè)=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "]=> [失敗]");
        }       
    }
     
    public void modifyTime(String name, String group, String cronExpression){        
        try {
            TriggerKey tk = TriggerKey.triggerKey(name, group);
            //構造任務觸發(fā)器
            Trigger trg = newTrigger()
                    .withIdentity(name, group)
                    .withSchedule(cronSchedule(cronExpression))
                    .build();       
            scheduler.rescheduleJob(tk, trg);
            log.info("修改作業(yè)觸發(fā)時間=> [作業(yè)名稱:" + name + " 作業(yè)組:" + group + "] ");
        } catch (SchedulerException e) {
            e.printStackTrace();
            log.error("修改作業(yè)觸發(fā)時間=> [作業(yè)名稱:" + name + " 作業(yè)組:" + 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

標簽:

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:php日期處理代碼

下一篇: PHP導入Excel文件