2

Spring.NET 統合の助けを借りて、Windows サービスを使用して Quartz.NET ジョブを実行しています。

次の2つの問題に直面しています。

  1. 私は常にジョブを追加/削除しています(新しいビジネスオブジェクトの新しい spring.net 構成を使用)。つまり、毎回 Windows サービスと実行中のジョブを停止する必要があります。

  2. さらに、ジョブの実行には多くの時間がかかるため、1 か所で設定したジョブをそれぞれ複数のサーバーで実行するとよいでしょう。

これら 2 つの機能をどのように実装することをお勧めしますか?

4

2 に答える 2

1

私の知る限り、別のアプリ ドメインにスケジューラをロードするコードを記述してから、自分でアプリ ドメインを管理しない限り、#1 を実行する方法はありません。これは Quartz.Net ディストリビューションでは利用できないため、自分で行う必要があります。

項目 2 については、クラスター化された Quartz サーバーをセットアップして、その問題を解決できます。クラスター化するスケジューラーをセットアップできるようにするには、データベース ストアを使用する必要があります。

于 2012-08-23T16:23:51.070 に答える
0

Quartz クラスタ サーバーをセットアップしたくない場合は、別の提案として、独自の単純なキュー ベースのアーキテクチャを導入することをお勧めします。ジョブをキューにプッシュする単一の軽量スケジューラ サービス (AWS/Azure キューが適切に機能します) と、それらのジョブを使用できるワーカーのプールを用意します。Quartz スケジュールの変更で同様の問題に直面しましたが、Quartz スレッドで実行されている長時間のプロセスについて心配する必要がなくなったとき、Quartz の管理がより簡単であることがわかりました。変更が要求されたときに実際にジョブを停止する必要がある場合、これはうまくいかない可能性があります。

于 2012-12-05T21:56:23.020 に答える