【发布时间】:2009-11-07 06:55:34
【问题描述】:
我们已经建立了一个基于 ActiveMQ 的应用基础架构。
我们可以很好地发送和接收消息,而且在大多数情况下,一切都非常快而且还可以。
但是,我们注意到,如果我们“一次”提交一批消息,比如 5,000 条消息 - ActiveMQ 将很快将消息发送到另一端的第 3 方应用程序,并且该应用程序将处理也很快,而且它也会很快将回复排队返回给经纪人,比如不到一分钟。
但由于某种原因,我们最初生成消息的 VB.NET EXE 似乎只是在处理它收到的返回消息不规律,有时每秒大约处理一个,有时会中断一个小时左右然后回到每秒一个。
Origin (VB.NET EXE which we manage)
-> Broker (which we manage)
-> (3rd party app)
-> back to the same broker
-> back to the origin app.
接收器正在等待来自 ActiveMQ 可能 9 个月前下载的 C# 代码的事件 MessageListener:
Public Delegate Sub MessageListener(ByVal message As NMS.IMessage)
Member of: NMS
我认为发生的事情是 MessageListener 只给了我们一条消息 (NMS.IMessage) 来咀嚼,所以这就是我们处理的内容。
有没有办法说“在 MessageListener 事件中,请查看队列中是否还有其他消息,然后全部执行”?
【问题讨论】: