Quartz是开源的做业调度框架,使你能在预约义的日期和时间运行任务。html
Quartz是强大和先进的调度框架,帮助Java开发者在指定的日期和时间运行调度做业。
本教程教你使用Quartz 1.6.3开发调度做业。java
本示例有点过期,新版Quartz版本为 2.2.3。express
<dependencies> <!-- Quartz API --> <dependency> <groupId>opensymphony</groupId> <artifactId>quartz</artifactId> <version>1.6.3</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> </dependencies>
public class HelloJob implements Job { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Hello Quartz!"); } }
SimpleTrigger
- 能够设置开始时间、结束时间和重复间隔。CronTrigger
- 能够使用Unix cron表达式指定日期和时间执行定义的工做。SimpleTrigger trigger = new SimpleTrigger(); trigger.setName("dummyTriggerName"); trigger.setStartTime(new Date(System.currentTimeMillis() + 1000)); trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); trigger.setRepeatInterval(3000);
CronTrigger - 每3秒执行一次框架
CronTrigger trigger = new CronTrigger(); trigger.setName("dummyTriggerName"); trigger.setCronExpression("0/3 * * * * ?");
Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger);
public class SimpleTriggerExample { public static void main(String[] args) throws SchedulerException { JobDetail job = new JobDetail(); job.setName("dummyJobName"); job.setJobClass(HelloJob.class); // configure the scheduler time SimpleTrigger trigger = new SimpleTrigger(); trigger.setName("dummyTriggerName"); trigger.setStartTime(new Date(System.currentTimeMillis() + 1000)); trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); trigger.setRepeatInterval(3000); // schedule it Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } }
CronTrigger实例学习
public class CronTriggerExample { public static void main(String[] args) throws SchedulerException, ParseException { JobDetail job = new JobDetail(); job.setName("dummyJobName"); job.setJobClass(HelloJob.class); // configure the scheduler time CronTrigger trigger = new CronTrigger(); trigger.setName("dummyTriggerName"); trigger.setCronExpression("0/3 * * * * ?"); // schedule it Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } }