Сельдерей настраивает отдельное соединение для производителя и потребителя

У нас есть установка приложения на heroku, которая использует сельдерей для запуска фоновых заданий. Приложение сельдерея использует RabbitMQ в качестве брокера. Мы использовали дополнение RabbitMQ Bigwig от heroku в качестве брокера сообщений AMQP. Это дополнение определяет два отдельных URL-адреса, оптимизированных для производителя и других, оптимизированных для потребителей. Кроме того, согласно документации RabbitMQ рекомендуется использовать отдельные подключения для производителя и потребителя.

Документация по сельдеву не дает возможности указывать соединения отдельно для производителя и потребителя. Есть ли способ указать два разных URL-адреса брокера в сельдерее?

One Solution collect form web for “Сельдерей настраивает отдельное соединение для производителя и потребителя”

К сожалению, нет чистого способа сделать это. Вы можете напрямую task.apply_async пользовательское соединение с брокером на task.apply_async , но это означает отказ от функции пула соединений. Это может сработать для вас.

 from kombu import BrokerConnection conn = BrokerConnection(hostname="producerbroker") mytask.apply_async(args, kwargs, connection=conn) 

Самое простое решение, вероятно, состоит в том, чтобы иметь разные конфигурационные файлы для производителя и рабочего.

  • Получение количества сообщений в очереди RabbitMQ
  • Зачем использовать сельдерей вместо RabbitMQ?
  • Периодические задачи Django Celery Run, но очереди RabbitMQ не потребляются
  • Стратегия RabbitMQ, Pika и пересоединения
  • Остановите channel.basic_consume, если соединение простаивает / Не потребляет из-за длительного времени
  • Цепи сельдерея не работают с партиями
  • Книга для Django + Celery + RabbitMQ?
  • Как перенаправить цепочку задач на определенную очередь в сельдерей?
  • Python - лучший язык программирования в мире.