quartz初體驗java
Quartz是一個開源做業調度框架。linux
看了一下官方的例子,一些簡單的任務執行很是方便,和使用linux裏的contab有點相似。web
大體就是在你的Job接口實現類裏面,添加一些邏輯到execute()方法。一旦你配置好Job實現類並設定好調度時間表,
quartz就會去準備執行。框架
直接看代碼吧ui
先解決依賴,它須要的依賴比較少。spa
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version> </dependency>
下面是主要代碼:code
public class App { private static final int SECONDS = 5; //多少秒執行一次這個任務 public static void main(String[] args) throws SchedulerException { Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); //配置任務的描述等 JobDetail job = newJob(MyJob.class) .withIdentity("job1", "group1") .withDescription("detail") .build(); //配置任務的執行規律等等 Trigger trigger = newTrigger() .withIdentity("trigger1", "group1") .startNow() .withSchedule(simpleSchedule() .withIntervalInSeconds(SECONDS) .repeatForever()) .build(); //組裝好任務 scheduler.scheduleJob(job, trigger); System.out.println("start job"); //啓動 scheduler.start(); } }
任務啓動:xml
/** * MyJob */ public class MyJob implements Job { public MyJob() { System.out.println("my job "); } public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("execute"); } }
到這裏一個簡單的quartz任務調度就ok了,這是在一個簡單的應用中使用quartz。
它也能夠放入web中,這裏就不詳解了,註冊監聽器,隨着容器啓動就能夠了,不過要注意的是銷燬的時候要記得清理掉定時任務,接口