我有两个队列(没有交换)的设置,让我们说队列A和队列B.
一个解析器将消息放入队列A,由ElasticSearch RabbitMQ河消耗。
我现在想要的是当ES河向队列A发送ack时将消息从队列A移动到队列B,这样我就可以在确认消息中进行其他处理,确保ES已经处理过它们。
RabbitMQ有没有办法做到这一点?如果没有,是否有任何其他设置可以保证消息在ES处理后仅在队列B中?
提前致谢
答案 0 :(得分:0)
我认为这不受AMQP或rabbitmq extensions的支持。
你可以放弃河流,让你的消费者也发布到elasticsearch。
由于正常的行为是队列是空的,你可以只执行一些从弹性搜索中读取条目的重试(使用指数退避),所以即使弹性搜索失去了初始种族,它也会退回一些,然后,您可以执行该任务。这可能需要调整客户端中的prefetch_size / count。