1

私の Web アプリケーションには、特定のフィールドとその値を表示する Web ページがあります。値はユーザーが編集できます。値が編集されると、データベースに永続化されます。ここで、提案が必要な問題が発生します。値が DB に更新されたら、時間がかかるいくつかのモジュールを実行する必要があります。したがって、この時間のかかる部分は、構成に応じて瞬時に実行される場合と実行されない場合があります。構成のオプションは、即時、毎時、毎日、毎週、または毎月です。したがって、瞬時にモジュールを実行する必要がある場合は、構成に基づいて指定された時間にタスクをトリガーする必要があります。

ジョブ スケジューラは、この問題を解決する良い方法ですか? Quartz.NET について聞いたことがあります。これを実現するために利用できる .NET ライブラリはありますか。Plsは提案を提供します。

4

1 に答える 1

1

これらのジョブをキューに格納し、別の非同期サービスを作成してキュー ジョブを実行することを強くお勧めします。そのため、Web サーバー (IIS) にすべての労力を負荷することはなく、Web サーバーの再起動または Web アプリケーションの再起動の場合でも、アプリケーションがジョブを失うことはありません。

このソリューションを作成するには、3 つのポイントを考慮する必要があります。

キューの設計と管理

もちろん、キュー サーバー (MSMQ、ActiveMQ、ZeroQ など) のいずれかを使用できます。ただし、簡単にするために、データベースの新しいテーブルをキューとして使用することをお勧めします。データベース テーブルをキューとして使用する方法については、次のリンクを参照してください。 http://rusanu.com/2010/03/26/using-tables-as-queues/

ジョブスケジューリング

ここには、Windows タスク スケジューラと QuatrZ.NET の 2 つのオプションがあります。この部分には QuatrZ.Net を使用することをお勧めします。これは、よりカスタマイズ可能であり、すべてのニーズに適合できるためです。

ホスティングサービス

QuartZ.NET サーバー デプロイメントを使用するか、.NET 4 Managed Extensibility Framework (MEF)を使用し、QuartZ IJob コントラクトとそのCorn 式に基づいて、独自のホスティング サービスを構築できます。

于 2012-07-23T13:56:05.553 に答える