java封装任务调度_任务调度开源框架石英动态添加,修改和删除定时任务

/ **

* @说明:

*

* @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);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值