我想知道它们之间有什么区别。他们描述的是同一件事吗?
是 Google App Engine 服务任务队列 https://developers.google.com/appengine/docs/java/taskqueue/overview是消息队列的实现吗?
我在 Facebook 上的一些开发者社区群组中问了类似的问题。这与 GoogleAppEngine 无关——我更广泛地要求确定 RabbitMQ 和 Celery 之间的用例。以下是我收到的回复,我认为这些回复与该主题相关,并且相当清晰地阐明了消息队列和任务队列之间的区别。
I asked:
说“芹菜是
QueueWrapper/QueueFramework 消除了拥有的复杂性
管理内部队列管理/队列管理活动
ETC”?
我理解书中的语言“Celery 是一个任务队列”并且
“RabbitMQ 是一个消息代理”。不过,似乎有点混乱
作为第一次 celery 用户,因为我们一直都知道 RabbitMQ
成为“队列”。
请帮助解释 celery 与rabbitMQ 相比如何/做什么
我从阿布·阿什拉夫·马斯努
任务队列和消息队列。 RabbitMQ 是一个“MQ”。它接收消息
并传递消息。
Celery 是一个任务队列。它接收任务及其相关数据,
运行它们并提供结果。
让我们暂时忘记芹菜。我们来谈谈RabbitMQ。什么
我们通常会做什么?我们的 Django/Flask 应用程序会向
队列。我们将有一些工作人员正在运行,等待新的工作人员
某些队列中的消息。当新消息到达时,它开始
工作并处理任务。
Celery 完美地管理了整个过程。我们不再需要
了解或担心 AMQP 或 RabbitMQ 的细节。我们可以使用Redis
甚至数据库(例如 MySQL)作为消息代理。芹菜
允许我们用我们的工人代码定义“任务”。当我们需要做的时候
后台(甚至前台)中的某些内容,我们可以调用
该任务(用于立即执行)或安排该任务延迟执行
加工。 Celery 将处理消息传递并运行
任务。它将启动知道如何运行你的工作人员
定义任务并存储结果。这样以后就可以查询任务了
需要时结果甚至任务进度。
你也可以使用 Celery 作为 cron 作业的替代品(尽管我不这样做)
真喜欢它)!
我从胡安·弗朗西斯科·卡尔德隆·尊巴
我的理解是芹菜只是一个非常高水平的
抽象来实现事件的生产者/消费者。它需要
列出一些你需要做的痛苦的事情,例如与
兔子MQ。 Celery 本身不是队列。事件队列被存储
在您选择的系统中,celery 可以帮助您处理此类问题
事件而无需从头开始编写生产者/消费者。
最终,这是我带回家的最终收获:
Celery 是一个队列包装器/框架,它消除了以下复杂性
必须管理底层的 AMQP 机制/架构
直接操作RabbitMQ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)