我有一个http服务器接收一些消息,当消息成功存储在队列中时必须回复200,而500则消息未添加到队列中。
我希望rabbitmq在队列达到大小限制时拒绝我的消息。
我该怎么做?
答案 0 :(得分:0)
实际上你无法配置RabbitMq就是这样一种方式。但您可以以编程方式检查队列大小,如:
`DeclareOk queueOkStatus = channel.queueDeclare(queueOutputName, true, false, false, null);
if(queueOkStatus.getMessageCount()==0){//your logic here}`
but be careful, because this method returns number of non-acked messages in queue.
答案 1 :(得分:0)
如果您想了解这一点,可以在插入前检查Q计数。它在同一个频道上发送请求。断言Q返回messageCount,它是' Ready'消息。注意:这不包括处于未确认状态的消息。
如果您不想知道Q长度,则按照问题的第1条评论中的规定:
x-max-length: 在队列开始从队列中删除之前,队列可以包含多少(就绪)消息。 (设置" x-max-length"参数。)