【问题标题】:What is the correct way to confirm a publish in celery?确认在 celery 中发布的正确方法是什么?
【发布时间】:2016-03-14 19:11:09
【问题描述】:

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

【问题讨论】:

    标签: python django rabbitmq celery


    【解决方案1】:

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

    也就是说,我挖了大半个上午的源代码,在这里找到了答案:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 2016-06-28
        相关资源
        最近更新 更多