任务实体类
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
*
* @author shiyufeng
* @ClassDescription 任务实体
* @date Apr 19, 2017
*/
public class TestJob implements Job {
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date();
String curTime = DateFormat.format(d);
/**
* 执行的逻辑
*/
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("任务执行★★★★★★★★★★★" + curTime);
}
}
任务管理类
package com.ultrapower.selfcheck.server.service.job;
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.impl.StdSchedulerFactory;
/**
*
* @author shiyufeng
* @ClassDescription 任务管类类
* @date Apr 19, 2017
*/
public class QuartzManager {
private static SchedulerFactory sf = new StdSchedulerFactory();
/**
* 添加任务
*
* @param jobName
* 任务名
* @param job
* 任务
* @param time
* 执行间隔
*/
public static void addJob(String jobName, Job job, String time)
throws Exception {
// 获取任务调度器
Scheduler scheduler = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, "group1", job.getClass());// 任务名,任务组,任务执行类
// 初始化触发器
CronTrigger trigger = new CronTrigger(jobName, "trigger1");// 触发器名,触发器组
// 触发器时间设定
trigger.setCronExpression(time);
scheduler.scheduleJob(jobDetail, trigger);
// 启动任务
scheduler.start();
}
/**
* 移除任务
*
* @param jobName
* 任务名称
*/
public static void removeJob(String jobName) throws SchedulerException {
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(jobName, "trigger1");// 停止触发器
sched.unscheduleJob(jobName, "trigger1");// 移除触发器
sched.deleteJob(jobName, "group1");// 删除任务
}
}
任务测试类
package com.ultrapower.selfcheck.server.service.job;
/**
*
* @author shiyufeng
* @ClassDescription 任务测试类
* @date Apr 19, 2017
*/
public class QuartzTest {
public static void main(String[] args) {
TestJob job = new TestJob();
String job_name = "11";
try {
System.out.println("【系统启动】");
// 每2秒钟执行一次
QuartzManager.addJob(job_name, job, "0/2 * * * * ?");
// 执行10秒钟
Thread.sleep(10000);
System.out.println("【移除定时】");
QuartzManager.removeJob(job_name);
} catch (Exception e) {
e.printStackTrace();
}
}
}