【问题标题】:What is the relationship between Celery and RabbitMQ?Celery 和 RabbitMQ 是什么关系?
【发布时间】:2017-04-12 20:59:09
【问题描述】:

Celery 主要是 RabbitMQ 等消息队列的高级接口吗?我正在尝试建立一个系统,其中有多个预定工作人员执行并发 http 请求,但我不确定是否需要其中任何一个。我想知道的另一个问题是,如果我使用的是 Celery 或 RabbitMQ,你在哪里编写代码中的实际任务供工人完成?

【问题讨论】:

    标签: python rabbitmq celery


    【解决方案1】:

    RabbitMQ 确实是一个消息队列,Celery 使用它向工作人员发送消息和从工作人员发送消息。 Celery 不仅仅是 RabbitMQ 的接口。 Celery 是您用来创建工人、启动任务和定义任务的工具。听起来您的用例对 Celery/RabbitMQ 很有意义。您使用 @app.task 装饰器创建任务。查看docs 了解更多信息。在以前的项目中,我为 celery 设置了一个模块,我在其中定义了我需要的任何任务。然后,您可以从其他模块中提取函数以在您的任务中使用。

    【讨论】:

      【解决方案2】:

      Celery 是任务管理框架——用于安排作业的 API、启动这些作业的代码、用于监控正在发生的事情的管理工具(例如 Flower)。

      RabbitMQ 是 Celery 的几个“后端”之一。说 Celery 是 RabbitMQ 的高级接口过于简单化了。 Celery 运行和正常工作实际上并不需要 RabbitMQ。但是,在实践中,它们通常是配对在一起的,而 Celery 是一种更高级别的方式,可以完成一些您可以在较低级别仅使用 RabbitMQ(或另一个队列或消息传递后端)完成的事情。

      【讨论】:

        猜你喜欢
        • 2018-06-11
        • 2012-02-23
        • 1970-01-01
        • 2017-10-24
        • 2018-05-02
        • 1970-01-01
        • 2011-07-18
        • 2011-07-17
        • 1970-01-01
        相关资源
        最近更新 更多