ActiveMQ に基づくアプリケーション インフラストラクチャを構築しました。
メッセージを問題なく送受信でき、ほとんどの場合、かなり高速で問題ありません。
ただし、メッセージのバッチを「一度に」送信すると、たとえば 5,000 件のメッセージを送信すると、ActiveMQ は相手側のサードパーティ アプリケーションにメッセージを非常に迅速に取得し、このアプリケーションも非常に迅速に処理することに気付きました。 、また、応答をブローカにすばやく (たとえば 1 分以内に) キューに入れます。
しかし、何らかの理由で、最初にメッセージを発信した VB.NET EXE は、受信した返信メッセージを不規則に処理しているように見えます。毎秒 1 つ。
Origin (VB.NET EXE which we manage)
-> Broker (which we manage)
-> (3rd party app)
-> back to the same broker
-> back to the origin app.
レシーバーは、おそらく 9 か月前に ActiveMQ からダウンロードされた C# コードからのイベント MessageListener を待っています。
Public Delegate Sub MessageListener(ByVal message As NMS.IMessage)
Member of: NMS
何が起きているかというと、MessageListener は 1 つのメッセージ (NMS.IMessage) しか提供しないので、それを処理します。
「MessageListener イベントで、現在キューに他のメッセージがあるかどうかを確認し、すべて実行してください」と言う方法はありますか?