- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
目前我正在研究需要实现一些后台作业(主要用于电子邮件发送和大量数据库更新)的 python 项目。我使用 Redis 作为任务代理。所以在这一点上,我有两个候选人:Celery和 RQ .我对这些工作队列有一些经验,但我想请你们分享使用这些工具的经验。所以。
Celery 看起来很复杂,但它是功能齐全的解决方案。实际上,我认为我不需要所有这些功能。从另一面看,RQ 非常简单(例如配置、集成),但似乎缺少一些有用的功能(例如任务撤销、代码自动重新加载)
最佳答案
这是我在尝试回答完全相同的问题时发现的。它可能并不全面,甚至在某些方面可能不准确。
简而言之,RQ 的设计宗旨是在所有方面都更简单。 celery 被设计得更健壮。他们都很优秀。
监控。 Celery's Flower和 RQ dashboard设置起来都非常简单,并且可以为您提供至少 90% 的您想要的所有信息
代理支持。 Celery 是明显的赢家,RQ 只支持 Redis。这意味着关于“什么是代理”的文档更少,但也意味着如果 Redis 不再适合您,您将来无法切换代理。例如,Instagram considered both Redis and RabbitMQ with Celery .这很重要,因为不同的经纪人有不同的保证,例如Redis 不能(在撰写本文时)保证 100% 地传递您的消息。
优先队列。 RQs 优先队列模型简单有效 - workers read from queues in order . Celery 需要启动多个 worker 以从不同的队列中消费。两种方法都有效
操作系统支持。 Celery 是明显的赢家,因为 RQ 仅在支持 fork
的系统上运行,例如Unix系统
语言支持。 RQ 仅支持 Python,而 Celery 允许您将任务从一种语言发送到另一种语言
API。 Celery 非常灵活(多个结果后端、漂亮的配置格式、工作流 Canvas 支持),但这种能力自然会令人困惑。相比之下,RQ api 很简单。
子任务支持。 Celery 支持子任务(例如,从现有任务中创建新任务)。不知道RQ有没有
社区与稳定。 Celery 可能更成熟,但它们都是活跃的项目。截至撰写本文时,Celery 在 Github 上有约 3500 颗星,而 RQ 有约 2000 颗星,这两个项目都显示出积极的发展
在我看来,Celery 并不像它的名声可能让您相信的那么复杂,但您必须使用 RTFM。
那么,为什么会有人愿意用(可以说功能更全的)Celery 来换取 RQ?在我看来,这一切都归结为简单。通过将自身限制为 Redis+Unix,RQ 提供了更简单的文档、更简单的代码库和更简单的 API。这意味着您(以及您项目的潜在贡献者)可以专注于您关心的代码,而不必将有关任务队列系统的详细信息保存在您的工作内存中。我们所有人都对一次可以在脑海中存储多少细节有限制,通过消除在其中保留任务队列细节的需要,RQ 可以让您回到您关心的代码。这种简单性是以牺牲诸如跨语言任务队列、广泛的操作系统支持、100% 可靠的消息保证以及轻松切换消息代理的能力等特性为代价的。
关于python - 使用 Celery 与 RQ 的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440875/
ODBC是一种连接数据库的开放标准。 ODBC(OpenDataBase Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows OpenServices Ar
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在我最近的 javascript 程序中(主要是为了好玩和概念验证)我有很多不同种类的对象,并且每种类型我都有相当数量的“实例”。所以我想我应该为这些使用类,但是由于它们非常简单,我可以直接构造它们而
我想知道图标(Material Design 图标)使用可绘制矢量形状(XML 文件)与图像资源(png 文件)的优缺点是什么? 最佳答案 正如我所见,这个问题是指光栅(例如 jpeg、png)和矢量
优点和缺点是什么使用 Plain Old Data (POD)structs\classes in C++ ? 在什么情况下应该更喜欢使用他们在非 POD 上? 具体来说,POD 在工作时有优势吗与序
我听说 Ctypes 会导致 Python 和 Windows 崩溃(或停止错误)。我应该远离他们的使用吗?我从哪里听到的?当我试图控制窗口的各个方面、自动化之类的东西时,它又回来了。 我听说过 sw
您能否解释一下在 iPhone 上存储数据的不同方式,以及每种方式的优缺点。 我已经阅读了很多关于 UserDefaults、CoreData、XML、plist 的内容……但我有点不知所措。 目前,
但对于关闭PING值后,网站能否被百度和GOOGLE等搜索引擎收录,很多人说法不一,有些说对收录没任何影响,也有人说影响不大,其实会不会影响,我也不是很清楚,我只能从我遇到情况的来分析一下。 7月
我正在寻找一个制作平台。我读过一些关于 gnu make 的文章,它在 Windows 平台上有一些问题(从斜杠/反斜杠到 shell 确定......)所以我想听听我有什么替代品? 如果重要的话,我
我是 Ubuntu Linux 用户,我仅将 Win XP 用于我的工作目的。 最近我用 XP + Visual Studio 2008(由 kvm-quemu 提供支持)设置了一个虚拟机。 我的问题
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 5 年前。 Improv
我对使用Grails Portlets plugin在Grails上开发 Liferay portlet的可能性感兴趣。我认为引入portlet框架(例如Spring Portlet API)将使开发
作为Photon的新手,有以下问题: 看起来 VMware 正在尝试创建与 Docker 并行的容器技术。由于现阶段docker比较成熟,使用photon有什么好处/优势吗? 我知道有人可以在内部使用
我只需要一些关于此布局的建议。我不是经验丰富的 CSS 用户,所以我遇到的唯一技术是将所有内容包装到一个 div 中,设置宽度和自动左/右边距。这种方法是面向 future 的吗? 在我开始之前我应该
我正在使用 jQuery Mobile 和 Phonegap 开发 HTML5 移动应用程序。它将部署在多个平台上。 我在下面有一个横幅 png: 我的问题是: 1)直接用这张图片做背景还是用CSS动
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
这个问题在这里已经有了答案: When is it necessary or convenient to use Spring or EJB3 or all of them together? (2
我最近听说了 JavaScript 对象表示法 (JSON),在查找之后,它似乎作为可扩展标记语言 (XML) 的替代品变得相当流行。 我继续 this页面以获取更多信息,但它似乎更像是一个 XML
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: EF 4.1 Code-first vs Model/Database-first 我刚刚开始学习 EF 4.0 C
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!