Python 具有相同RabbitMQ代理后端进程的多个芹菜项目

Python 具有相同RabbitMQ代理后端进程的多个芹菜项目,python,rabbitmq,celery,Python,Rabbitmq,Celery,如何使用两个不同的芹菜项目,它们使用来自单个RabbitMQ安装的消息 通常,如果我对这些脚本使用不同的rabbitmq,它们工作得很好。但在生产机器上,我需要为它们共享相同的RabbitMQ后端 注意:由于某些限制,我无法将新项目合并到现有项目中,因此它将是两个不同的项目。RabbitMQ能够创建名为虚拟消息代理的虚拟消息代理 主机或虚拟主机。每个服务器本质上都是一个具有自己队列的小型RabbitMQ服务器。这使您可以安全地将一个RabbitMQ服务器用于多个应用程序 rabbitmqctl

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

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


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

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

rabbitmqctl add_vhost
命令创建vhost

默认情况下,芹菜使用默认的vhost:

芹菜工人——经纪人=amqp://guest@本地主机//

但您可以使用任何自定义vhost:

芹菜工人——经纪人=amqp://guest@localhost/myvhost

示例

rabbitmqctl add_vhost new_host
rabbitmqctl add_vhost /another_host
芹菜工人——经纪人=amqp://guest@本地主机/新主机

芹菜工人——经纪人=amqp://guest@localhost//另一个\u主机


工作得很好。在实现此方法之前,我尝试了不同的队列/交换配置,但没有成功。使用不同的VHOST,没有冲突,两个芹菜应用对我来说都很好。