/ **
* @说明:
*
* @Title:QuartzManager.java
* @包com.joyce.quartz
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:15:52
* @version V2.0
* /
包 com.joyce.quartz;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
进口 org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
/ **
* @Description:定时任务管理类
*
* @ClassName:QuartzManager
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:15:52
* @version V2.0
* /
公共类 QuartzManager {
privatestatic SchedulerFactory gSchedulerFactory = new StdSchedulerFactory();
私人静态 字符串JOB_GROUP_NAME = “EXTJWEB_JOBGROUP_NAME”;
私人静态 字符串TRIGGER_GROUP_NAME = “EXTJWEB_TRIGGERGROUP_NAME”;
/ **
* @Description:添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
*
* @参数jobName
*任务名
* @参数cls
*任务
* @参数时间
*时间设置,参考石英说明文档
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:47:44
* @version V2.0
* /
@SuppressWarnings(“unchecked”)
publicstaticvoid addJob(String jobName,Class cls,String time){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
JobDetail jobDetail = 新的 JobDetail(jobName,JOB_GROUP_NAME,cls); //任务名,任务组,任务执行类
//触发器
CronTrigger触发器= 新的 CronTrigger(jobName,TRIGGER_GROUP_NAME); //触发器名,触发器组
trigger.setCronExpression(时间); //触发器时间设定
sched.scheduleJob(jobDetail,触发器);
//启动
如果 (!sched.isShutdown()){
sched.start();
}
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:添加一个定时任务
*
* @参数jobName
*任务名
* @参数jobGroupName
*任务组名
* @参数triggerName
*触发器名
* @参数triggerGroupName
*触发器组名
* @param jobClass
*任务
* @参数时间
*时间设置,参考石英说明文档
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:48:15
* @version V2.0
* /
@SuppressWarnings(“unchecked”)
publicstaticvoid addJob(String jobName,String jobGroupName,
字符串triggerName,字符串triggerGroupName,类jobClass,
字符串时间){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
JobDetail jobDetail = 新的 JobDetail(jobName,jobGroupName,jobClass); //任务名,任务组,任务执行类
//触发器
CronTrigger trigger = new CronTrigger(triggerName,triggerGroupName); //触发器名,触发器组
trigger.setCronExpression(时间); //触发器时间设定
sched.scheduleJob(jobDetail,触发器);
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
*
* @参数jobName
* @参数时间
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:49:21
* @version V2.0
* /
@SuppressWarnings(“unchecked”)
publicstaticvoid modifyJobTime(String jobName,String time){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
CronTrigger触发器=(CronTrigger)sched.getTrigger(jobName,TRIGGER_GROUP_NAME);
if (trigger == null){
返回;
}
String oldTime = trigger.getCronExpression();
if (!oldTime.equalsIgnoreCase(time)){
JobDetail jobDetail = sched.getJobDetail(jobName,JOB_GROUP_NAME);
Class objJobClass = jobDetail.getJobClass();
removeJob(JOBNAME);
addJob(jobName,objJobClass,time);
}
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:修改一个任务的触发时间
*
* @参数triggerName
* @参数triggerGroupName
* @参数时间
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:49:37
* @version V2.0
* /
publicstaticvoid modifyJobTime(String triggerName,
字符串triggerGroupName,字符串时间){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
CronTrigger触发=(CronTrigger)sched.getTrigger(triggerName,triggerGroupName);
if (trigger == null){
返回;
}
String oldTime = trigger.getCronExpression();
if (!oldTime.equalsIgnoreCase(time)){
CronTrigger ct =(CronTrigger)触发器;
//修改时间
ct.setCronExpression(时间);
//重启触发器
sched.resumeTrigger(triggerName,triggerGroupName);
}
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:移除一个任务(使用默认的任务组名,触发器名,触发器组名)
*
* @参数jobName
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:49:51
* @version V2.0
* /
publicstaticvoid removeJob(String jobName){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
sched.pauseTrigger(jobName,TRIGGER_GROUP_NAME); //停止触发器
sched.unscheduleJob(jobName,TRIGGER_GROUP_NAME); //移除触发器
sched.deleteJob(jobName,JOB_GROUP_NAME); //删除任务
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:移除一个任务
*
* @参数jobName
* @参数jobGroupName
* @参数triggerName
* @参数triggerGroupName
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:50:01
* @version V2.0
* /
publicstaticvoid removeJob(String jobName,String jobGroupName,
字符串triggerName,字符串triggerGroupName){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
sched.pauseTrigger(triggerName,triggerGroupName); //停止触发器
sched.unscheduleJob(triggerName,triggerGroupName); //移除触发器
sched.deleteJob(jobName,jobGroupName); //删除任务
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:启动所有定时任务
*
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:50:18
* @version V2.0
* /
公共静态无效的 startJobs(){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
sched.start();
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
/ **
* @Description:关闭所有定时任务
*
*
* @Title:QuartzManager.java
* @版权:Copyright(c)2014
*
* @作者Comsys-LZP
* @date 2014-6-26下午03:50:26
* @version V2.0
* /
publicstaticvoid shutdownJobs(){
尝试 {
调度程序sched = gSchedulerFactory.getScheduler();
如果 (!sched.isShutdown()){
sched.shutdown();
}
} 捕获 (例外五){
抛出新的 RuntimeException(e);
}
}
}