我正在使用quartz.net作爲Windows服務來安排我的工作。我的工作很長時間,我需要優雅地終止他們,如果石英服務停止(或者有人手動停止/重新啓動它或Windows關機/重新啓動;沒關係)。有什麼Quartz關機事件可以在我的作業中處理? Quartz還有一個啓動事件,我可以在我的數據庫中設置一些啓動值?我正在使用c#作爲我的工作。如何處理服務啓動和關閉事件?
1
A
回答
1
如果你得到這個代碼庫:
https://github.com/quartznet/quartznet/tree/master/server/Quartz.Server
工作的潤通已經完成。
您應該調試代碼。 但是ashga是正確的.... IScheduler.Shutdown(true)允許一個優雅的關閉。這意味着......它會嘗試完成任何已經運行的工作。
如果您使用控制面板來「停止服務」.........它可能會調用優雅的方法(我猜,我不知道肯定)..... ...所以如果在控制面板服務關閉(超時)發生之前曼妙停止結束....它將會很好。
如果「正常關機」花費的時間超過控制面板服務關閉(超時)....您將得到類似於「您的服務未及時關閉」的Windows消息。
........
如果您正在使用一個內存中的數據存儲(Quartz.Simpl.RAMJobStore)...有沒有什麼你可以在服務重新做。
如果您使用的是ADO網絡數據存儲(「Quartz.Impl.AdoJobStore.JobStoreTX」)...那麼有一些「從我離開的地方拿起」東西.......這是一個需要深入研究的問題。 「失火」將是其中一個條款。
如果您不正常地停止使用內存數據存儲(Quartz.Simpl.RAMJobStore).....它基本上與您在計算機上關閉電源一樣.......當它再次啓動時,它不會知道任何「狀態」。
0
當您的應用程序關閉時,您是否嘗試過調用IScheduler.Shutdown(true)? 應該允許一個正常關機:)
相關問題
- 1. Hibernate事務和物理事務同時啓動和關閉?
- 2. Memcache服務已關閉 - 如何處理?
- 3. 如何處理服務器關閉TCP
- 4. 如何關閉事件處理程序?
- 5. 如何處理窗體關閉事件
- 6. 如何處理AlertDialog關閉事件?
- 7. 關閉和處理WCF服務
- 8. Exe4j,Windows服務,處理關機事件
- 9. Jersey Rest服務何時啓動/關閉?
- 10. 如何讓服務器啓動時關閉couchase服務器?
- 11. 如何在Python中關閉和啓動服務器扭曲?
- 12. 如何在Linux 12.04中啓動和關閉tomcat 7服務器?
- 13. 如何防止在FormClosing事件中關閉和處理winform?
- 14. 從swing中的事件處理程序啓動服務器
- 15. 在關閉父批處理文件後在後臺運行服務(在批處理文件中啓動)
- 16. AndroidViewClient關閉,移動和關閉事件
- 17. 如何關閉服務器發送的事件事件
- 18. 我想創建批處理腳本來啓動服務關閉和啓動類型是自動的
- 19. 啓動plist服務不關閉
- 20. 啓動服務時強制關閉
- 21. 如何處理事件並在sencha中啓動服務器請求?
- 22. 爲OpenOffice.org處理「保存/關閉事件」
- 23. iPad的關閉鍵盤事件處理
- 24. 處理事件「Excel正在關閉」
- 25. 關閉事件處理程序C#
- 26. jQuery:燈箱關閉事件處理
- 27. Javascript關閉時處理mouseover事件
- 28. Javascript關閉/事件處理噩夢
- 29. 處理髮送對象關閉事件
- 30. 無法啓動事件網關實例:事件網關服務未啓用
石英作爲服務運行,我無法控制何時關閉。它像循環一樣,如果我不知道Quartz正在關閉,我怎麼知道什麼時候調用IScheduler.Shutdown(true)? – taimur