Проекты Multi Celery с одним и тем же бэкэндовым процессом BrobMMM

Как я могу использовать два разных проекта сельдерея, которые потребляют сообщения от одной установки RabbitMQ.

Как правило, эти скрипты работают нормально, если я использую для них другой rabbitmq. Но на производственной машине мне нужно поделиться одним и тем же бэкэндом RabbitMQ для них.

Примечание. Из-за некоторых ограничений я не могу объединить новые проекты в существующие, так что это будет два разных проекта.

Ответ 1

RabbitMQ имеет возможность создавать виртуальные брокеры сообщений, называемые виртуальными хостами или vhosts. Каждый из них по существу является мини-сервером RabbitMQ со своими очередями. Это позволяет вам безопасно использовать один сервер RabbitMQ для нескольких приложений.

rabbitmqctl add_vhost создает rabbitmqctl add_vhost.

По умолчанию Celery использует / default vhost:

работник сельдерея --broker = amqp://guest @localhost//

Но вы можете использовать любой пользовательский vhost:

работник сельдерея --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