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); } }