0

我需要創建調度程序以指定的時間間隔執行作業(類文件)。現在,我使用Quartz Scheduler來觸發定義的作業觸發它的時間間隔。運行調度程序,以完成前一個作業的間隔執行作業

對於如:考慮我給一個cron表達式來每隔一小時運行在上午9.My第一次運行開始將在9,我的第二輪將在10等。 如果我的工作需要20分鐘執行,那麼在這種情況下,這種方法效率不高。

我需要做的是從先前運行的工作

EG的完成時間安排爲每隔一小時作業:考慮我的工作運行每隔一小時被觸發9和第一次運行需要20分鐘的時間才能運行,因此下次只能在10:20而不是10時觸發(即從前一次運行作業完成後一小時)

我需要知道是否在Quartz Scheduling中有任何方法可以實現這個或任何其他我需要做的邏輯。

如果有人能幫我解決這個問題,那對我很有幫助。

+0

如果有誰知道,請幫我在這.. – reema

回答

0

您可以輕鬆實現這一點,方法是通過作業連鎖執行作業。有多種方法可供您選擇:

(1)實施Quartz JobListener及其jobWasExecuted方法,每當作業完成時由Quartz調用,重新開啓您的工作。 (2)查看您可以用來實現簡單作業鏈場景的Quartz JobChainingJobListener。請注意,此偵聽器的功能非常有限,因爲它不允許您在作業執行之間插入延遲,不支持在執行目標作業之前必須滿足的條件等。但是,您可以將其用作良好的啓動指向執行(1)。

(3)使用QuartzDesk(我們的商業產品)或任何其他產品,它允許你創建工作鏈,而外部化和管理所有工作依賴外應用程序的。作業鏈可以有多個目標作業,這些作業可以立即執行,具有固定的延遲或將來任意時間由JavaScript表達式生成。它還允許您實現更復雜的工作流程,例如在多個源作業完成其執行時觸發目標作業等。附上屏幕快照,向您展示什麼是Job1的1分鐘延遲後重新執行Job1的簡單作業鏈完成(與任何作業執行狀態)的樣子:

Job Chain Condition Job Chain Target Jobs

+0

感謝揚莫拉維克你救了我的一天.. :) – reema

相關問題