Quartz.NET とWindowsのスケジュールされたタスクの比較を探していますか?
それらはどのくらい違うのですか?それぞれの長所と短所は何ですか?どちらを使用するかを選択するにはどうすればよいですか?
TIA、
Quartz.NETを使用すると、以前のポイントのいくつかを対比することができます。
それは主にあなたが何を必要としているかについての質問です。 Windowsのスケジュールされたタスクは、必要なすべてを提供する場合があります。ただし、クラスタリング(分散ワーカー)、トリガーまたは失火処理ルールのきめ細かい制御が必要な場合は、Quartz.NETがこれらの領域で提供するものを確認することをお勧めします。
要件を満たす最も単純なものを採用しますが、変更を許可するのに十分抽象的です。
私の直感的な反応は、さらに別のスケジューラーをインストールする前に、最初に統合されたWinSchedulerをニーズに合わせて動作させることです-理由:
それがあなたのニーズを満たさないならば、それからクォーツに手を伸ばしてください。 Quartzには確かにこれらの機能の多くもありますが、可能であれば、所有および管理するためのさらに別のサービスを追加することは避けてください。
私にとって、他の回答に含まれていない重要な違いの1つは、スケジューラーによって実行されるものです。
Windowsタスクスケジューラは、実行可能プログラムとスクリプトのみを実行できます。 Quartz内で使用するために記述されたコードは、プロジェクトの.NETコンポーネントと直接対話できます。
タスクスケジューラでは、シェルの実行可能ファイルまたはスクリプトを作成する必要があります。そのシェルの内部で、プロジェクトのコンポーネントと対話できます。このシェルコードを書くことは難しいプロセスではありませんが、余分なファイルの展開を検討する必要があります。
プロジェクトの存続期間中にスケジュールされたタスクをさらに追加することが予想される場合は、追加の実行可能シェルまたはスクリプトファイルを作成する必要があり、展開プロセスを更新する必要があります。 Quartzでは、これらのファイルは必要ありません。これにより、追加のタスクを作成してデプロイするために必要な総労力が削減されます。
残念ながら、Quartz.NETジョブアセンブリは、プロセス/ホスト/サービスを再起動しないと更新できません。これは、一部の人(私を含む)にとってはかなり大きなものです。
タスクスケジューラで実行されるジョブのフレームワークを構築することは完全に可能です。 MEFベースのアセンブリは、単一のコンソールアプリから呼び出すことができ、すべてが構成UIを介して管理されます。人気のあるマネージラッパーは次のとおりです。
Quart.NETでの短い作業は楽しかったですが、再起動の要件が大きすぎて克服できませんでした。マルコは何年にもわたって素晴らしいの仕事をしてきました、そして彼はいつも親切で敏感でした。おそらくいつか、プロジェクトはこれに対処する複数のAppDomain
サポートを取得するでしょう。 (とはいえ、それは多くの仕事になることを約束します。彼らがそれを引き受けることに決めたならば、彼と彼の貢献者に称賛を送ります。)
マルコを言い換えると、必要に応じて:
...次に、Quartz.NETが要件になります。