2016-09-16 5 views
2

スケジューラのWindowsサービスは、各ジョブのスケジュール時間が異なるサーバーで実行されています。Quartz.netスケジューラのメモリリーク

  1. を週にサービスが正しく動作してしなければならないすべての仕事をしていますが、一定時間内に、それは、ログ・ファイルの各時間内のOutOfMemoryExceptionがスローされます。

    思い付いた二つの問題があります。ジョブは実行されます。

  2. スケジューラのこのサービスを実行しているサーバでは、タスクマネージャはメモリを増やしていて、それをクリーニングしていません。メモリをクリーニングするには、スケジューラーサービスを再起動します。

コードでこの問題を解決する方法があるかどうかはわかりません。

アドバイスありがとうございました

+0

ちょっと@Alex、これにはどんな解決策が見つかりましたか?私も石英を使ったスケジューラーサービスと同様の状況にあります。 –

+0

いいえ、これについての解決策は見つかりませんでした。Quartzの代わりにAzure webjobsを使用することにしました。ここでは、[link](https://www.troyhunt.com/orchestrating-massive-parallelisation/) –

答えて

0

クォーツはそれ自身の後で清掃する必要があります。 カスタムJobFactoryを実装した場合は、実行後にジョブを解放してください。

0

上記の問題の解決策を見つけたので、私はここに書いています。 GitHubにはサンプルコードがあるプロジェクトがありますが、QuartzジョブでAutoFacを設定するのに必要なすべてのものが必要に応じて調整する必要があります。ここにはlinkがあります。

Autofac.Extras.Quartzは、各クォーツジョブのネストされたlitefimeスコープを作成します。

これは、2つの主要な機能を備えています。ネストされたスコープは、ジョブの実行が完了した後に配置されます。

これにより、ジョブごとに1つのインスタンスを実行し、リソースを確定的に廃棄することができます。

これは確かに同じ問題に直面している他の人に役立つでしょう。

関連する問題