RQ 可以替代 Celery

查看原文

本文是一篇经验总结贴,总结了他们为什么从 Celery 切换到 RQ,简单来说,就是 RQ 简单到爆,只有一种方式做一件事情,可以避免 over-complicated, over-engineer。作者觉得 Celery 是个很优秀的工具,可以提供各种 Broker 还有很多很棒的 Feature。但是如果看使用场景,很多时候我们只需要能从 web 进程中 enqueue job 到队列去,然后 worker 执行。就这么简单,如果非要再加一些需求进来,队列监控,限速什么的也不是不可以。但是过度工程到构建 workflow 什么都就有点跟 80% 需求偏差有些大了。RQ 使用 Pickle 做序列化,Redis 做 Broker 和 Backend,os.fork 做子进程派生,没有定时调度,文档简单到极点,15 分钟全部读完。算是一种小而美的技术,就算出了问题,自己看看代码做个 Hack 什么的也是分分钟的事情。

衍生思考:避免 over-engineering 可以让很多工程师们买账。如果找不到 side project 做的工程师们啊,可以找个大象程序,砍倒最简单,设计最简接口,根据最常使用的场景描绘文档,相信会有不少受众。