如何使用两个不同的 celery 项目,它们使用来自单个 RabbitMQ 安装的消息。
通常,如果我为它们使用不同的 rabbitmq,这些脚本可以正常工作。但是在生产机器上,我需要为他们共享相同的 RabbitMQ 后端。
注意:由于某些限制,我无法合并现有项目中的新项目,因此它将是两个不同的项目。
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