web-dev-qa-db-ja.com

C#の永続的なワークキュー

おそらく別々のスレッドに、おそらく別々のプロセスに、あるいは異なるPCにさえ、ワーカードローンの小さなネットワークを作りたいと想像してみてください。作業項目は中央プログラムによって作成されます。

私はこれをすべて私のために行う既存の製品またはサービスを探しています。 MSMQとMQSeriesがあることを私は知っています。 MQSeriesは高すぎます。 MSMQは信頼性が低いことで有名です。データベースに裏打ちされたシステムで十分ですが、私はそれを所有/管理/書き込みしたくありません。他人のワークキューシステムを利用したい。

関連記事:

25
010110110101

私は過去にペットプロジェクトに Rabbit MQ を使用しましたが、それをキューシステムのリストに追加できます。

キューをラップするフレームワークに関しては、 http://www.nservicebus.com/ を参照してください。ここでは、いくつかの基本的なプロジェクトを実行しています。そして、ここに始めるための簡単な例があります: http://meisinger2.wordpress.com/2009/11/09/nservicebus-fifteen-minutes/

7
deepee1

いくつかのガイドラインに従うと、データベースをキューストアとして使用して成功を収めることができます。 テーブルをキューとして使用する を参照してください。

SQL Serverには、独自の組み込みメッセージキュー、つまり Service Broker が付属しています。これにより、スケーラビリティ、信頼性、高可用性、およびディザスタリカバリのシナリオに関して、MSMQの落とし穴の多くを回避できます。

Servcie Brokerはデータベースに完全に統合されています(外部ストアなし、一貫したバックアップ/復元1つ、フェイルオーバー1ユニット、メッセージストアとデータベース間の高価な2フェーズコミットDTCの必要なし、アクセスとプログラミングのための単一のT-SQL APIメッセージとデータの両方)、また、 トランザクションメッセージングなどのいくつかの優れた独自の機能があり、正確に1回限りの配信相関メッセージロック内部アクティベーション など.

12
Remus Rusanu

私は過去に MassTransit を正常に使用しました。 MSMQとRabbitMQの使用をサポートしています。

1
Rex Morgan