我正在优化我的celery/rabbitmq安装,发现了这篇文章:
http://www.lshift.net/blog/2015/04/30/making-celery-play-nice-with-rabbitmq-and-bigwig/
它提到,如果您想保证消息传递(我是这样做的),那么就要执行设置BROKER_TRANSPORT_OPTIONS = {'confirm_publish': True}
。我找不到任何有关rabbitmq或celery设置的文档。在
用rabbitmq确认在芹菜中发布的正确方法是什么?该功能的文档在哪里?在
所以回答我自己的问题:目前还没有文档。在
这就是说,我花了一个上午的时间,在这里找到了答案:
https://github.com/celery/py-amqp/blob/24df1032db4a566e165f736ccb6b4a15cc94bcaa/amqp/channel.py#L1770-L1776
py-amqp
是celery最终使用的库(通过kombu两个包深入到这里的人!)。py-amqp
读取该设置,并在设置confirm_publish
选项时等待。这有效地使排队过程同步。在confirm_publish
选项由py-amqp
库https://github.com/celery/py-amqp使用 它强制发布到阻塞连接,直到收到来自RabbitMQ的确认。 这里描述了RabbitMQ确认:https://www.rabbitmq.com/confirms.html相关问题 更多 >
编程相关推荐