是否可以使用单个celery实例连接到多个代理?

时间:2015-09-18 15:49:08

标签: python python-2.7 rabbitmq celery

我有一个用例,其中有两个我想连接的RabbitMQ,RabbitMQ实例A和实例B.假设我暂时不能将这两个实例合并到一个RabbitMQ实例中,并且它们必须是分开的。请注意,这两个实例具有不同的交换/队列,并且不是数据或消息的任意方式复制。

是否可以使用单个芹菜应用程序连接到两个代理,以及它们的交换/队列:amqp://<instance-a>:5672amqp://<instance-b>:5672

我查看了文档并且这似乎没有可能,芹菜似乎在大多数情况下都是单片 - 但我对芹菜(和Python)相对较新,所以我可能错过了一些东西。

1 个答案:

答案 0 :(得分:1)

我怀疑你可能会“滥用”芹菜作为rabbitmq 消费者。使用rabbitmq作为消息队列(或事件队列)是一个好主意,但你不需要使用芹菜来消费它(坦率地说 - 因为芹菜不适合这种工作,它可能会在以后咬你在))

所以你最好选择一些rabbiqmq客户端抽象库(Kombu PikaPuke是主要的python选项)并建立你自己一个体面的消费者。

您也可以尝试将shovel plugin用于rabbitmq。这可以用于“铲除”从一个队列/交换到另一个队列/交换的消息。可能还会工作