【问题标题】:Celery configure separate connection for producer and consumerCelery 为生产者和消费者配置单独的连接
【发布时间】:2013-11-18 10:21:07
【问题描述】:

我们在 heroku 上安装了一个应用程序,它使用 celery 来运行后台作业。 celery 应用程序使用 RabbitMQ 作为代理。 我们使用 heroku 的 RabbitMQ Bigwig 插件作为 AMQP 消息代理。 这个附加组件指定了两个单独的 url,一个为生产者优化,另一个为消费者优化。 此外,根据 RabbitMQ 文档,建议为生产者和消费者使用单独的连接。

Celery 文档没有提供单独指定与生产者和消费者的连接的方法。 有没有办法在 celery 中指定两个不同的代理 url?

【问题讨论】:

    标签: python heroku rabbitmq celery


    【解决方案1】:

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

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

    最直接的解决方案可能是为生产者和工人设置不同的配置文件。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2011-11-08
      • 2017-02-24
      • 2015-04-05
      • 1970-01-01
      • 2014-04-09
      • 2010-12-14
      • 2015-07-23
      • 2014-05-24
      相关资源
      最近更新 更多