如何让rabbitmq在队列满时拒绝消息?

时间:2015-12-21 13:55:27

标签: rabbitmq amqp

我有一个http服务器接收一些消息,当消息成功存储在队列中时必须回复200,而500则消息未添加到队列中。

我希望rabbitmq在队列达到大小限制时拒绝我的消息。

我该怎么做?

2 个答案:

答案 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"参数。)