658
技術社區[雲棲]
Quartz教程一:使用quartz
本係列教程由quartz-2.2.x官方文檔翻譯、整理而來,希望給同樣對quartz感興趣的朋友一些參考和幫助,有任何不當或錯誤之處,歡迎指正;有興趣研究源碼的同學,可以參考我對quartz-core源碼的注釋(進行中)。
Scheduler在使用之前需要實例化。一般通過SchedulerFactory來創建一個實例。有些用戶將factory的實例保存在JNDI中,但直接初始化,然後使用該實例也許更簡單(見下麵的示例)。
scheduler實例化後,可以啟動(start)、暫停(stand-by)、停止(shutdown)。注意:scheduler被停止後,除非重新實例化,否則不能重新啟動;隻有當scheduler啟動後,即使處於暫停狀態也不行,trigger才會被觸發(job才會被執行)。
下麵的代碼片段,實例化並啟動一個scheduler,調度執行一個job:
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
// define the job and tie it to our HelloJob class
JobDetail job = newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
// Trigger the job to run now, and then every 40 seconds
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(40)
.repeatForever())
.build();
// Tell quartz to schedule the job using our trigger
sched.scheduleJob(job, trigger);
你看到了,quartz的使用並不難。教程二會簡要地介紹job和trigger,以及quartz的API,然後你會更好地理解上麵的示例
最後更新:2017-05-23 17:32:12