如何使用两个不同的芹菜项目,消耗来自单个RabbitMQ安装的消息.
通常,如果我们为他们使用不同的rabbitmq,这些脚本工作正常.但在生产机器上,我需要为他们分享相同的RabbitMQ后端.@H_301_3@
注意:由于一些限制,我不能合并现有的新项目,所以它将是两个不同的项目.@H_301_3@
解决方法
RabbitMQ有能力创建名为virtual的虚拟消息代理
主机或vhosts.每个本质上都是一个带有自己的队列的迷你RabbitMQ服务器.这使您可以安全地为多个应用程序使用一个RabbitMQ服务器.
主机或vhosts.每个本质上都是一个带有自己的队列的迷你RabbitMQ服务器.这使您可以安全地为多个应用程序使用一个RabbitMQ服务器.
rabbitmqctl add_vhost命令创建一个vhost.@H_301_3@
默认情况下Celery使用/ default vhost:@H_301_3@
celery worker –broker=amqp://guest@localhost//@H_301_3@
celery worker –broker=amqp://guest@localhost/myvhost@H_301_3@
例子:@H_301_3@
rabbitmqctl add_vhost new_host rabbitmqctl add_vhost /another_host
celery worker –broker=amqp://guest@localhost/new_host@H_301_3@
celery worker –broker=amqp://guest@localhost//another_host@H_301_3@