Quartz Java编程
http://www.quartz-scheduler.org/documentation/quartz-2.3.0/?
http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html?
引入依賴?
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>默認配置文件
org.quartz.core包下,有一個默認的配置文件,quartz.properties。當我們沒有定義一個同名的配置文件的時候,就會使用默認配置文件里面的配置。
org.quartz.scheduler.instanceName: DefaultQuartzScheduler org.quartz.scheduler.rmi.export:false org.quartz.scheduler.rmi.proxy: false org.quartz.scheduler.wrapJobExecutionInUserTransaction:false org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount: 10 org.quartz.threadPool.threadPriority: 5 org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread:true org.quartz.jobStore.misfireThreshold: 60000 org.quartz.jobStore.class:org.quartz.simpl.RAMJobStore創建 Job
實現唯一的方法 execute(),方法中的代碼就是任務執行的內容。此處僅輸出字符串。?
publicclass MyJob implements Job { public void execute(JobExecutionContext context)throws JobExecutionException { System.out.println("假發在哪里買的 "); } }在測試類 main()方法中,把 Job進一步包裝成 JobDetail。
必須要指定 JobName和 groupName,兩個合起來是唯一標識符。
可以攜帶 KV的數據(JobDataMap),用于擴展屬性,在運行的時候可以從 context獲取到。?
JobDetail jobDetail = JobBuilder.newJob(MyJob1.class) .withIdentity("job1", "group1") .usingJobData("gupao","2673") .usingJobData("moon",5.21F) .build();創建 Trigger
在測試類 main()方法中,基于 SimpleTrigger定義了一個每 2秒鐘運行一次、不斷重復的 Trigger:
Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("trigger1", "group1") .startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(2) .repeatForever()) .build();創建 Scheduler
在測試類 main()方法中,通過 Factory獲取調度器的實例,把 JobDetail和 Trigger綁定,注冊到容器中。
Scheduler先啟動后啟動無所謂,只要有 Trigger到達觸發條件,就會執行任務。
SchedulerFactory factory =new StdSchedulerFactory(); Schedulerscheduler =factory.getScheduler(); scheduler.scheduleJob(jobDetail, trigger); scheduler.start();注意這里,調度器一定是單例的。?
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Quartz Java编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任务调度框架Quartz基本介绍
- 下一篇: 升级到Java SE 8 和Java E