首先创建SchedulerFactory对象,因为SchedulerFactory是一个接口,一般可以用他的一个实现类
StdSchedulerFactory
ScheDulerFactory scheDulerFactory = new StdSchedulerFactory();
接着是创建JobDetail ;
JobDetail jobDetail = new JobDetail("jobName" , "jobGroup" , Class) ;
分别是任务的名,任务的组,需要执行的任务class,这个class必须是实现quartz.的job接口,接口下的execute方法就是执行的任务,比如
pulbic class mainJbo implements Job{
public void execute(){
dosomething... ;
}
}
那么传入参数的的Class就应该是mainJob.class
接着就需要定义触发器,也就是什么时候触发
CronTrigger trigger = new CronTrigger("jobName" ,"triggerGroup");
trigger.setCronExpression(time);
这里的时间格式是一个字符串,具体的格式可以参考
http://dwj147258.iteye.com/blog/2350795中的时间规则配置
最后启动
Scheduler scheduler = scheDulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail ,trigger);
if(!scheduler.isShutDown()){
scheduler.start();
}
完整的创建任务代码如下:
public void startTask(){ try { Scheduler sched = schedulerFactory.getScheduler(); Class cla = Class.forName(clazzName); JobDetail jobDetail = JobBuilder.newJob(cla).withIdentity(new JobKey(jobName , "TASK_GROUP")).build(); Trigger trigger = TriggerBuilder.newTrigger() .withIdentity(new TriggerKey(jobName, "TRIGGERGROUIP")) .startNow() .withSchedule(CronScheduleBuilder.cronSchedule(timeCron)) .build(); sched.scheduleJob(jobDetail ,trigger) ; if(!sched.isShutdown()){ sched.start() ; } } catch (Exception e) { } }
如果要停止这一个任务调度:
Scheduler scheduler= scheDulerFactory .getScheduler();
sched.pauseTrigger("jobName", triggerGroup);// 停止触发器
sched.unscheduleJob("jobName", triggerGroup);// 移除触发器
sched.deleteJob("jobName", jobGroup);// 删除任务
End
相关推荐
详解scheduler过时策略,因为最近项目需要,在网上找了好久,没找到,所以自己总结了下,供大家分享!
Quartz 开发指南 中文版 1. 第一课:使用Quartz 2. 第二课:Jobs And Triggers ...10. 第十课: Configuration, Resource 使用及SchedulerFactory 11. 第十一课: 高级(企业级)特性 12. 第十二课: 其他特性
内容提要:介绍 Scheduler 和 SchedulerFactory 有哪些类型、SchedulerFactory 的关键 API 方法;以及如何通过 java.util.Properties 实例或默认 quartz.properties 文件创建 Scheduler。 第四章. 部署 Job (第二...
10. 第十课: Configuration, Resource 使用及SchedulerFactory 11. 第十一课: 高级(企业级)特性 12. 第十二课: 其他特性 常见问题 一般问题 • Quartz是什么? • 为什么不使用java.util.Timer? • 如何build ...
定时任务在项目中经常会使用到,本文主要根据博主自己使用定时的经验分如下几点介绍定时任务:1、Quartz定时任务简介及Spring配置Quartz定时任务;2、SchedulerFactory对定时任务进行增删改查