Quartz2.x增、删、改工具类详解编程语言

Quartz2.x增、删、改工具类

 

[Java]代码    

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, String group){ 
		try { 
			JobKey jobKey = JobKey.jobKey(name, group);			 
			scheduler.resumeJob(jobKey); 
			log.info("恢复作业=> [作业名称:" + name + " 作业组:" + group + "] "); 
		} catch (SchedulerException e) { 
			e.printStackTrace(); 
			log.error("恢复作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); 
		}		 
	} 
	 
	public void modifyTime(String name, String group, 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("停止调度器=> [失败]"); 
		} 
	} 
} 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10104.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论