Quartz2.x增、删、改工具类
发布时间:2020-05-25 16:01:34 所属栏目:Java 来源:互联网
导读:Quartz2.x增、删、改工具类
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
