【问题标题】:How to receive RabbitMQ messages in a Django app? (Celery?)如何在 Django 应用程序中接收 RabbitMQ 消息? (芹菜?)
【发布时间】:2018-03-09 13:16:00
【问题描述】:

我们收到由服务器外部事件生成的 RabbitMQ(或者可能是 Redis)消息。

如何让我们的 Django 应用收到此类事件的通知(并执行我们的一些代码)?

可以用芹菜做吗?

【问题讨论】:

标签: django redis rabbitmq celery


【解决方案1】:

您可以查看 Celery Extensions & Bootsteps。它允许您编写自定义 AMQP 消息消费者。 https://celery.readthedocs.io/en/latest/userguide/extending.html#custom-message-consumers

【讨论】:

    【解决方案2】:

    这应该包含您需要的所有信息。 Celery 任务可以写入数据库或通过 REST API 或类似的东西与 Django 交互。 https://www.digitalocean.com/community/tutorials/how-to-use-celery-with-rabbitmq-to-queue-tasks-on-an-ubuntu-vps.

    【讨论】:

    • 这不是我的问题的答案。我问如何将事件从 RabbitMQ 传递到我们的 Django 应用程序,而不是如何通过 Celery 将事件从我们的 Django 应用程序传递到 RabbitMQ
    • Celery 从 RabbitMQ 读取事件,然后可以通过更新数据库或调用 API 等将其传递给 Django。您不想从 Django 轮询,因为这会使应用程序无响应。您可能想让您的问题更具体。你说你可能会收到来自 Websocket 的消息。 Celery 仍然可以发送这些消息。更新您的问题,我会尽量给出更具体的答案。
    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多