【发布时间】:2015-09-18 15:49:07
【问题描述】:
我有一个用例,我想连接两个 RabbitMQ,RabbitMQ 实例 A 和实例 B。假设我不能将这两个实例组合成一个 RabbitMQ 实例,它们必须 分开。请注意,这两个实例具有不同的交换/队列,并且无论如何都不是数据或消息的复制。
是否可以使用单个 celery 应用程序连接到两个代理,以及它们的交换/队列:amqp://<instance-a>:5672 和 amqp://<instance-b>:5672?
我查看了文档,这似乎是不可能的,celery 在大多数情况下似乎是单片的——但是我对 celery(和 Python)相对较新,所以我可能错过了一些东西。
【问题讨论】:
-
您希望 Celery 使用两个代理执行其任务管理?我之所以问,是因为我很确定您可以让 Celery 使用一个代理进行任务管理,并让任务使用第二个代理来实现某些其他目的。
-
@Louis 我想我只需要 Celery 来针对其中一个代理执行任务管理,但我仍然需要使用消息并从第二个连接对它们进行操作。我在想这意味着使用 Celery 对两者进行任务管理。拆分基本上是一个我几乎无法控制的外部消息队列和一个内部消息队列,我希望我可以围绕两个连接构建一个应用程序。最初我在想我可能需要进入多处理/多线程,但如果没有必要,我不想走那条路。
标签: python python-2.7 rabbitmq celery