0

外部キューからメッセージを受け取りたい場合は、 inRedisなどと言ってください。1 つのスレッドが常にキューをチェックし、関連する処理にメッセージを送信するほうがよいでしょうかBroadcastBlock(例)

if (message.type == "person")
    personBroadcast.post(message);
else
    monsterBroadcast.post(message);

次に、処理のためにパイプラインにブロードキャストするのはどれTasksですか?それとも、メッセージをすべてキューから取り出して自分で処理している 4 つの方がよいでしょうか?

最初の例では、TPL DataFlowブロックは実際に並行して処理されますか、それとも別のタスクである必要がありますか? リソースを最大限に活用するアプローチを決定しようとしています。アドバイスをいただければ幸いです。

4

2 に答える 2

0

あなたのユースケースは、ディスラプター フレームワークが役立つ可能性のあるもののように思えます。簡単に言うと、disruptor は単一のスレッドを使用してイベントをリッスンし、それらをハンドラー (定義内のブロードキャスト ブロック) にディスパッチします。https://code.google.com/p/disruptor-net/でディスラプターの .net バージョンを見つけることができます。

于 2013-09-23T16:05:42.503 に答える