2016-09-16 437 views
2

我有一個調度程序的Windows服務在服務器中運行,每個任務的調度時間都不相同。Quartz.net調度程序內存泄漏

有想出了兩個問題:

  1. 在爲期一週的服務正在運行正確的做一切必須做的工作,但在某些時候它扔在每次日誌文件的一個OutOfMemoryException工作運行。

  2. 在運行此調度程序服務的服務器中,任務管理器只是增加內存而不清除它。要清除內存,調度程序服務將重新啓動。

我不知道是否有辦法通過代碼解決這個問題。

謝謝建議

+0

嘿@Alex,你有沒有找到這方面的解決方案?我也在使用石英的調度程序服務處於類似的情況。 –

+0

不,我沒有找到任何解決方案,我們決定使用Azure Webjobs而不是Quartz,下面是我們使用[link](https://www.troyhunt.com/orchestrating-massive-parallelisation/)的一些信息。 –

回答

0

石英應該自己清理乾淨。 如果您實施了自定義的JobFactory,請務必在執行後釋放您的作業。

0

我寫在這裏,因爲我找到了解決上述問題的解決方案。在GitHub上有一個有示例代碼的項目,但您可能需要根據您的需要進行調整,這需要使用Quartz作業來設置AutoFac。這裏是link

這包括兩個主要特徵:

Autofac.Extras.Quartz會爲每個石英工作嵌套litefime範圍。嵌套範圍在作業執行完成後處理。

這允許每個作業執行一次實例以及確定性的資源處置。

當然這會幫助一些面臨同樣問題的其他人。