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

时间:2013-11-06 22:59:37

标签: python heroku rabbitmq celery

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

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

1 个答案:

答案 0 :(得分:1)

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

from kombu import BrokerConnection
conn = BrokerConnection(hostname="producerbroker")

mytask.apply_async(args, kwargs, connection=conn)

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

相关问题