6

Quartz.netを使用する社内で使用しているジョブスケジューリングシステムのアップグレードに取り組んでいます。Quartzの最新バージョンのソースを見ると、.NET 4.0で出荷を開始した大幅に改善されたスレッドプール(またはSystem.Threading.Tasksからのもの)とは対照的に、独自のスレッドプール実装を使用していることに気付きました。

スケジューリング機能にQuartz.netを使用し、スレッドプールにTPLを使用するジョブスケジューリングシステムを誰かが正常に実装したかどうかを知りたいと思います。QuartzのスレッドプールをTPLのスレッドプールに交換するのは比較的簡単ですか?Quartzは、タスクの世界でもまだ関連性がありますか?あるいは、.NET 4.xスレッドプールの大幅な改善(コア認識、ローカルキュー、ロックの改善など)で販売されているように、Quartzのスレッドプールは一般的な粗粒度のバックグラウンドジョブには十分であり、価値はありませんTPLをミックスに強制する努力?

これら2つのツールを一緒に使用する(または使用しない)ことについての洞察を事前に感謝します。

4

1 に答える 1

3

Quartz.NETは、TPLとは少し異なる問題を解決するためにあります。Quartz.NETは、実行タイミングのための豊富な機能セットを備えた定期的なジョブスケジューリングを目的としています。一方、TPLは、計算ワークロードのパフォーマンスの高い並列実行を目的としています。

したがって、本質的には、(通常)正確なスケジューリングにはQuartz.NETを使用し、すべてのコンピューティングリソース(コアなど)を利用して可能な限り迅速に完了する必要がある同時ワークロードにはTPLを使用します。

そうは言っても、Quartz.NETが使用するスレッドプールの実装はこの仕事には十分だと思います。また、Quartz.NETは.NET 3.5に準拠しており、4.0のみの機能を使用できないことにも注意してください。

もちろん、ソリューションでこの2つをいつでも組み合わせることができます。

于 2013-03-04T18:08:16.110 に答える