在celery中确认发布的正确方法是什么?

2024-05-16 04:24:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在优化我的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确认在芹菜中发布的正确方法是什么?该功能的文档在哪里?在


Tags: and文档httpplaynetwwwwithrabbitmq
2条回答

所以回答我自己的问题:目前还没有文档。在

这就是说,我花了一个上午的时间,在这里找到了答案:

https://github.com/celery/py-amqp/blob/24df1032db4a566e165f736ccb6b4a15cc94bcaa/amqp/channel.py#L1770-L1776

py-amqp是celery最终使用的库(通过kombu两个包深入到这里的人!)。py-amqp读取该设置,并在设置confirm_publish选项时等待。这有效地使排队过程同步。在

confirm_publish选项由py-amqphttps://github.com/celery/py-amqp使用 它强制发布到阻塞连接,直到收到来自RabbitMQ的确认。 这里描述了RabbitMQ确认:https://www.rabbitmq.com/confirms.html

相关问题 更多 >