如何在没有消耗时丢弃队列消息?(ActiveMQ)

时间:2015-01-19 05:02:05

标签: queue activemq

使用ActiveMQ: 塞纳里奥:  服务器将通过队列向客户端发送许多消息。  但是,如果没有使用者(客户端)

,我会立即将消息放入队列中

提前致谢!

2 个答案:

答案 0 :(得分:2)

您可以使用非持久性消息传递,如果没有活跃的消费者,则会删除该消息。

另一种替代方法可能是使用消息到期,因此如果消息未从队列中消耗,则消息将在X周期后到期。

答案 1 :(得分:1)

在每封邮件上设置一个JMSExpiration一段时间(30秒?5分钟?),然后在该时间后没有消费的任何邮件(无论是因为没有消费者还是因为消费者在后面运行)将被发送到DLQ。或者,如果您不想在DLQ中使用它,请配置死信策略以设置processExpired=false或使用Discarding DLQ Plugin,两者都记录在http://activemq.apache.org/message-redelivery-and-dlq-handling.html