18

如何使用两个不同的 celery 项目,它们使用来自单个 RabbitMQ 安装的消息。

通常,如果我为它们使用不同的 rabbitmq,这些脚本可以正常工作。但是在生产机器上,我需要为他们共享相同的 RabbitMQ 后端。

注意:由于某些限制,我无法合并现有项目中的新项目,因此它将是两个不同的项目。

4

1 回答 1

29

RabbitMQ 能够创建称为虚拟主机或虚拟主机的虚拟消息代理。每一个本质上都是一个带有自己队列的 mini-RabbitMQ 服务器。这使您可以安全地将一个 RabbitMQ 服务器用于多个应用程序。

rabbitmqctl add_vhost命令创建一个虚拟主机。

默认情况下,Celery 使用/ default vhost:

芹菜工人--broker=amqp://guest@localhost//

但是您可以使用任何自定义虚拟主机:

芹菜工人--broker=amqp://guest@localhost/myvhost

例子

rabbitmqctl add_vhost new_host
rabbitmqctl add_vhost /another_host

芹菜工人--broker=amqp://guest@localhost/new_host

芹菜工人--broker=amqp://guest@localhost//another_host

于 2012-08-31T11:18:11.720 回答