3

それを書くのが簡単 (または楽しい) ではないというわけではありませんが、いわば車輪を再発明しないのは理にかなっています。私はさまざまな試みを見回してきましたが、これらの基準をサポートする実装にはまだ出会っていないようです。

MongoDB 永続性を備えた単純なキュー OSS システム。

  • C#ドライバー(公式)ベース(完全POCO連載)
  • ポーリングではなくテーラブル カーソル
  • メッセージのタイムアウトを処理する (GC が正しく行われる)
  • コンシューマーの障害を処理します (理想的には、再挿入を検出してクラッシュしますが、遅延再挿入によるタイムアウトは問題ありません)。完了時に findAndModify
  • 複数のライター、複数のコンシューマー
  • スレッドセーフ

あった方がよい;

  • (最新の)メッセージを許可します(Q の古いメッセージを置き換えます)

私がまだ見つけていない GitHub に出回っているような素敵でシンプルなライブラリを誰かが持っている場合は、声を上げてください!

4

1 に答える 1

0

私の小さなプロジェクトがあります。これは、MS SQL キューまたは MongoDB で動作する .net メッセージ バスの実装です (MongoDB サポートは最近追加されました)。リンク: http://code.google.com/p/nginn-messagebus/およびhttp://nginn.org/blogの例を参照してください。これがあなたが探しているものかどうかはわかりません.ドキュメントとサンプル部門も不足しており、仕様と完全に一致していません(テーリングではなくポーリング)-しかし、試してみる価値があるかもしれません. これは、NServiceBus や MassTransit などのパブリッシュ/サブスクライブ メッセージ バスであり、生のメッセージ キューではありません。

PSあなたの仕様には相互に排他的な要件があると思います.原子性を失うため、同時消費者でテーラブルカーソルを使用することはできません. キューを追跡したい場合は、単一のコンシューマーのみを使用する必要があります。

于 2012-12-01T15:04:31.063 に答える