一旦有帧,ActiveMQ就会阻止新用户获取帧

时间:2016-08-25 00:47:10

标签: php python queue activemq stomp

我试过几个libs和语言(php5 | php7 | Stomp扩展| ZF1 Stomp | Python2.7 Stomp包)。
我发现如果队列中有订户,并且它开始从队列中获取消息(帧),那么在此期间任何新订户都不会获得任何消息。

我的问题:
有没有办法为当前在其中有消息+现有订户的队列创建新订户,并且新订户将接收这些消息。
我不发送独家订阅者标题 如果我在收到消息之前有两个用户,他们都会参与。

1 个答案:

答案 0 :(得分:0)

您很可能遇到预取问题,其中第一个客户端预取了所有消息,并且正在通过它们进行搅拌,而第二个客户端则没有结果。要解决此问题,您应该使用ActiveMQ STOMP guide中给出的值为客户端配置一个小的预取值,例如1。客户端需要添加标头activemq.prefetchSize:1等。

您还可以将客户端订阅设置为使用客户端确认模式,该模式允许您控制何时处理消息并阻止代理调度更多消息。