我正在考虑调整我的芹菜/兔子mq安装,我找到了这篇文章:
http://www.lshift.net/blog/2015/04/30/making-celery-play-nice-with-rabbitmq-and-bigwig/
它提到BROKER_TRANSPORT_OPTIONS = {'confirm_publish': True}
如果您想保证消息传递(我这样做)进行设置。 我无法找到有关兔子或芹菜此设置的任何文档。
用兔子确认芹菜发布的正确方法是什么? 所述功能的文档在哪里?
所以回答我自己的问题:目前没有文档。
也就是说,我花了大半个上午挖掘源代码,并在这里找到了答案:
https://github.com/celery/py-amqp/blob/24df1032db4a566e165f736ccb6b4a15cc94bcaa/amqp/channel.py#L1770-L1776
py-amqp
是芹菜最终使用的库(通过 kombu--两个包在这里深处! py-amqp
读取该设置,并在设置confirm_publish
选项时等待。 这有效地使排队过程同步。
confirm_publish
选项由py-amqp
库使用 https://github.com/celery/py-amqp它强制发布以阻止连接,直到收到来自 RabbitMQ 的确认。RabbitMQ 确认描述如下:https://www.rabbitmq.com/confirms.html