2012-01-10 54 views
0

我創建了一個實現IStatefulJob並根據石英文檔Quartz .net IStatefulJob - 刪除觸發器?

"if a job is stateful, and a trigger attempts to 'fire' the job while it is already 
executing, the trigger will block (wait) until the previous execution completes" 

反正是有辦法去除阻止和殺死作業的新發射實例中的作業?

我正在基於其背後的數據量可以有很大的不同的運行時間,我很擔心,如果我們有一些等待運行,它可能有負面影響作業的作業...

謝謝

回答

1

不幸的是沒有。作爲一名工作實施者,您有責任確保該工作能夠跟蹤其是否已達到「良好行爲」的時限。通常情況下,沒有必要因爲工作需要一定的時間完成。

當您要中斷調度程序中的所有作業時,您也需要執行IInterruptableJob並設置主作業循環監視的標誌。

您可以隨時重新考慮設計。排隊同樣的工作不應該成爲問題,因爲它有相同的職責。在失火指示中,您可以配置失火(排隊時間過長)實例以廢棄並等待下一次着火時間。