您的位置:首页 > 其它

UVA 11389――The Bus Driver Problem

2013-04-15 21:02 393 查看
准备jar包:

1.quartz-all-1.6.0.jar

2.commons-collections-xxx.jar

 

 

 

package quartz;

import java.text.ParseException;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzManager {
private static SchedulerFactory sf = new StdSchedulerFactory();
private static String JOB_GROUP_NAME = "group1";
private static String TRIGGER_GROUP_NAME = "trigger1";

/** */
/**
* 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
*
* @param jobName
*            任务名
* @param job
*            任务
* @param time
*            时间设置,参考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName, Job job, String time)
throws SchedulerException, ParseException {
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, job
.getClass());// 任务名,任务组,任务执行类
// 触发器
CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);// 触发器名,触发器组
trigger.setCronExpression(time);// 触发器时间设定
sched.scheduleJob(jobDetail, trigger);
// 启动
if (!sched.isShutdown())
sched.start();
}

/** */
/**
* 添加一个定时任务
*
* @param jobName
*            任务名
* @param jobGroupName
*            任务组名
* @param triggerName
*            触发器名
* @param triggerGroupName
*            触发器组名
* @param job
*            任务
* @param time
*            时间设置,参考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName, String jobGroupName,
String triggerName, String triggerGroupName, Job job, String time)
throws SchedulerException, ParseException {
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job
.getClass());// 任务名,任务组,任务执行类
// 触发器
CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName);// 触发器名,触发器组
trigger.setCronExpression(time);// 触发器时间设定
sched.scheduleJob(jobDetail, trigger);
if (!sched.isShutdown())
sched.start();
}

/** */
/**
* 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
*
* @param jobName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String jobName, String time)
throws SchedulerException, ParseException {
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(jobName, TRIGGER_GROUP_NAME);
if (trigger != null) {
CronTrigger ct = (CronTrigger) trigger;
ct.setCronExpression(time);
sched.resumeTrigger(jobName, TRIGGER_GROUP_NAME);
}
}

/** */
/**
* 修改一个任务的触发时间
*
* @param triggerName
* @param triggerGroupName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String triggerName,
String triggerGroupName, String time) throws SchedulerException,
ParseException {
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(triggerName, triggerGroupName);
if (trigger != null) {
CronTrigger ct = (CronTrigger) trigger;
// 修改时间
ct.setCronExpression(time);
// 重启触发器
sched.resumeTrigger(triggerName, triggerGroupName);
}
}

/** */
/**
* 移除一个任务(使用默认的任务组名,触发器名,触发器组名)
*
* @param jobName
* @throws SchedulerException
*/
public static void removeJob(String jobName) throws SchedulerException {
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(jobName, TRIGGER_GROUP_NAME);// 停止触发器
sched.unscheduleJob(jobName, TRIGGER_GROUP_NAME);// 移除触发器
sched.deleteJob(jobName, JOB_GROUP_NAME);// 删除任务
}

/** */
/**
* 移除一个任务
*
* @param jobName
* @param jobGroupName
* @param triggerName
* @param triggerGroupName
* @throws SchedulerException
*/
public static void removeJob(String jobName, String jobGroupName,
String triggerName, String triggerGroupName)
throws SchedulerException {
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(triggerName, triggerGroupName);// 停止触发器
sched.unscheduleJob(triggerName, triggerGroupName);// 移除触发器
sched.deleteJob(jobName, jobGroupName);// 删除任务
}

}

 
 

 

package quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class TestJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("★★★★★★★★★★★");
}
}

 
 

package quartz;

public class QuartzTest {
/** */
/**
* @param args
*/
public static void main(String[] args) {
TestJob job = new TestJob();
String job_name = "11";
try {
System.out.println("【系统启动】");
QuartzManager.addJob(job_name, job, "0/5 * * * * ?");

Thread.sleep(10000);
System.out.println("【修改时间】");
QuartzManager.modifyJobTime(job_name, "0/10 * * * * ?");
Thread.sleep(20000);
System.out.println("【移除定时】");
QuartzManager.removeJob(job_name);
Thread.sleep(10000);

System.out.println("\n【添加定时任务】");
QuartzManager.addJob(job_name, job, "0/5 * * * * ?");

} catch (Exception e) {
e.printStackTrace();
}
}

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: