RabbitMQ:收到确认后将消息移动到另一个队列

时间:2015-03-19 14:59:24

标签: elasticsearch rabbitmq message-queue

我有两个队列(没有交换)的设置,让我们说队列A和队列B.

一个解析器将消息放入队列A,由ElasticSearch RabbitMQ河消耗。

我现在想要的是当ES河向队列A发送ack时将消息从队列A移动到队列B,这样我就可以在确认消息中进行其他处理,确保ES已经处理过它们。

RabbitMQ有没有办法做到这一点?如果没有,是否有任何其他设置可以保证消息在ES处理后仅在队列B中?

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为这不受AMQP或rabbitmq extensions的支持。

  1. 你可以放弃河流,让你的消费者也发布到elasticsearch。

  2. 由于正常的行为是队列是空的,你可以只执行一些从弹性搜索中读取条目的重试(使用指数退避),所以即使弹性搜索失去了初始种族,它也会退回一些,然后,您可以执行该任务。这可能需要调整客户端中的prefetch_size / count。