首页 文章

Celery为 生产环境 者和消费者配置单独的连接

提问于
浏览
5

我们在heroku上有一个应用程序设置,它使用芹菜来运行后台作业 . 芹菜应用程序使用RabbitMQ作为代理 . 我们使用heroku的RabbitMQ Bigwig插件作为AMQP消息代理 . 此附加组件指定两个单独的URL,一个针对 生产环境 者优化,另一个针对消费者进行了优化 . 另外,根据RabbitMQ文档,建议为 生产环境 者和消费者使用单独的连接 .

Celery文档未提供单独指定 生产环境 者和使用者的连接的方法 . 有没有办法在芹菜中指定两个不同的经纪人网址?

1 回答

  • 1

    不幸的是,没有一种干净的方法可以做到这一点 . 您可以在 task.apply_async 上显式提供自定义代理连接,但这意味着放弃连接池功能 . 它可能适合你 .

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

    最直接的解决方案可能是为 生产环境 者和 Worker 提供不同的配置文件 .

相关问题