阻止消费者使用队列中的消息

时间:2014-01-03 11:23:47

标签: activemq

我从ActiveMQ开始,我有一个用例。我有n个生产者将消息发送到队列Q1。我想停止传递消息(即我不希望消费者使用这些消息)。我希望将消息存储一段时间而不消耗它们。

我正在研究如何实现这一目标。基于我浏览的内容,我想到了这两件事。

  • 使用镜像队列,以便我可以窃听邮件并保存到虚拟队列中。
  • 可能会阻止消费者在队列中执行PULL。
  • 这样做的另一种肮脏方式是让消费者在从队列中消费消息后不发送确认消息。

我们目前对这两种情况都不满意。

您可以建议的任何其他方式。

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您总是希望延迟邮件投递,可以使用ActiveMQ的scheduler功能将投放延迟到设定的时间或固定的延迟等。

其他策略也可能有效,但您可以自行设计适合您用例的内容。您可以尝试使用Apache Camel来定义实现用例逻辑的路由,以将消息分派给队列或将其发送到调度程序以进行延迟处理。这一切都取决于您的使用案例和要求。