0

長期的なプロセス ハンドラを作成し、そのために NServiceBus を使用したいと考えています。NServiceBus の役割は、そのプロセス (ある種のバッチ プロセス) の操作を保持することです。私がしなければならないことではないと思います。

ロジックは次のとおりです。1) 長期プロセスの注文を受け取ります。2) それを N 個の操作に分割します。3) 各操作はメッセージに「パック」され、キューにプッシュされます。4) メッセージのタイプに応じて、特定のハンドラーメッセージを処理し、それが保持する操作を行います。

アプリケーションは別のメッセージを処理する必要があるため、すべての操作を 1 つのキューに入れることはできません。これには迅速な応答が必要です。キューが操作でいっぱいになると、別のメッセージが処理されるまで長時間待機します。

それで、誰もその問題を解決する方法を知っていますか?

4

1 に答える 1

0

長時間実行プロセス エンドポイントのアクセス キュー構成設定で、ワーカー スレッドの数を適切に設定する必要があります。

使用している場合は、これと特にタグをMSMQチェックしてください<MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5"/>

別のスレッドがまだ別のメッセージを処理していても、アイドル状態のすべてのワーカー スレッドがキューからメッセージを引き出します。このようにして、シナリオで説明した並列計算の要件を達成する必要があります。

于 2012-11-23T12:36:44.170 に答える