我有一個每10分鐘啓動一次的QUARTZ JOB。如何將QUARTZ JOB設置爲僅在另一個JOB完成時停止啓動?
如果一個作業在10分鐘內沒有完成,在接下來的10分鐘內,另一個作業將開始。
我想要的是:如果之前的作業已經完成,下一個作業(每10分鐘後)應該只啓動一次。有什麼辦法可以做到嗎?
我有一個每10分鐘啓動一次的QUARTZ JOB。如何將QUARTZ JOB設置爲僅在另一個JOB完成時停止啓動?
如果一個作業在10分鐘內沒有完成,在接下來的10分鐘內,另一個作業將開始。
我想要的是:如果之前的作業已經完成,下一個作業(每10分鐘後)應該只啓動一次。有什麼辦法可以做到嗎?
@DisallowConcurrentExecution是可以添加到 作業類,告訴石英不執行 定作業定義的多個實例(即引用給定作業類) 同時註解。請注意那裏的措詞,因爲它非常仔細地選擇了 。在上一節中的示例中,如果 「SalesReportJob」具有此註釋,則可以在給定時間只執行一個 「SalesReportForJoe」實例,但它可以與「SalesReportForMike」實例同時執行 。約束 基於實例定義(JobDetail),而不基於作業類的實例 。但是,決定(在Quartz的設計過程中) 需要在類本身上進行註釋,因爲 通常會影響類的編碼方式。
如果你不想SalesReportForMike和SalesReportForJoe同時運行,那麼你可以因此,在任何給定時間只有一個作業將運行調度程序的線程池的大小設置爲1。
而且看看StatefulJob
StatefulJob是完美的,謝謝。 – victorio