さまざまな通知のためにサーバーにメッセージを送信する必要があるクライアント アプリケーションがあります。クライアントが時々接続して実行できるようにするために、メッセージ キュー アプローチを使用します。キュー処理は、メッセージをキューから取り出し、別のキューに配置して最終的に処理する Web サービスを呼び出します。この質問はクライアント環境に関するものです。サーバー環境はすでに決まっています。
MSMQ を適切にインストール/構成し、セキュリティで保護するためにすべてのクライアント PC を制御できないため、MSMQ を使用したくありません。また、MSMQ キューの内容を調査するためのツールの品質のために、サポートがより困難になるためです。 . SQL Server 2005 Express はすべてのマシンにあり、アプリケーションのデータを格納するために使用されます。
私は現在、2つのオプションにそれを持っています:
- メッセージをシリアル化した後にテーブルに格納し、
ThreadPool.QueueUserWorkItem
各メッセージ タイプに対して構成されたハンドラーによってメッセージを処理するために使用する、かなり基本的な永続的なメッセージ キューを記述します。すべてが含まれているSystem.Transactions.TransactionScope
ため、正常に処理された場合にのみ永続キューから削除されます。 - ローカル データベースを使用する Service Broker トランスポートを使用して、クライアントで NServiceBus (これはチームとして使用したサービス バスであるため、MassTransit などはオプションではありません) を使用します。
私はサービス バスの経験がほとんどないため (サービス バスの用語はまだよくわかりません)、必要な方法で要件を満たすはるかに単純なものを作成する場合と比較して、学習曲線が心配です (展開は大きな考慮)。
誰か考えがありますか?