NServiceBusまたは同等のESBは、さまざまな種類のバックグラウンドメンテナンスタイプのタスクが多数あるアプリケーションに適していますか?例えば:
- ユーザー生成コンテンツでの特定の単語の出現についてデータベースをスキャンする
- 比較的高価なクエリの結果を格納するデータベーステーブルの更新
- コンテンツの外部インデックスの作成/維持
- スケジュールされたイベントのイベント通知メールを送信します。
私の考えは、ある種のタスクスケジューラ(Windows組み込みのもの、Quartz.NET、または私自身のデータベースベースのソリューション)を使用して、さまざまな種類のメッセージをバスに定期的に公開することです。期間は、最短で1分、最長で1日です。バスを使用したい理由は、システムが大きくなり、忙しくなり、タスクがより頻繁になるか、より多くのリソースを消費するようになるにつれて、サブスクライバーの数をスケールアウトできるようにするためです。また、少なくとも2人のサブスクライバーを常に実行している限り、冗長性も提供されます。
これに代わる明らかな方法は、スケジューラーによってトリガーされて作業を実行する独自のWindowsサービスを作成することですが、ESBを配管として使用するよりも、単一のマシンを超えてそのスケールを作成し、フォールトトレランスを提供する方が難しいと感じています。 。
これは合理的なアプローチのように聞こえますか?別の提案?
TIA