初識:一旦一個scheduler被實例化了,它就能夠被start,進入運行狀態,也能夠被shutdown。這也是一個scheduler的生命週期(從被實例化到被shutdown)。這裏須要注意,一旦scheduler被shutdown,就不能再從新start了,想要從新start,必須從新實例化。spa
一個scheduler被實例化以後,就能夠添加、移除Job、Trigger甚至暫停一個Trigger等。可是,只有在start以後,Trigger才能夠生效(come into play)。對象
主要接口:接口
Job接口:生命週期
public interface Job { void execute(JobExecutionContext context) throws JobExecutionException; }
咱們寫本身的job時須要實現的接口。io
JobExecutionVontext參數攜帶的信息:scheduler的引用、trigger的引用、JobDetail對象以及其餘一些信息。變量
JobDetail接口:引用
在scheduler添加job時建立,它包含了Job的一些信息,以及一個JobDataMap,JobDataMap存儲了job的成員變量。im
Trigger接口:時間
觸發Job時須要,經過trigger能夠使得job執行,Quartz自帶了幾種不一樣的觸發方式,可是經常使用的是SimpleTrigger以及CronTrigger。co
SimpleTrigger適用於在給定的時間只執行一次或者重複執行N次或者延遲T執行。
CronTrigger更適用於與日曆相關的,好比每週一的上午十點執行。
在Quartz中,咱們稱JobDetail爲 「JobDetail實例」 或 「Job的定義」,稱Job爲 「Job實例」 或 「Job定義的實例」