大家什么样的需求会考虑用 celery 这种?

2022-05-02 18:35:13 +08:00
 gengchun

我反正现在好几个需求,都是直接用 redis pub/sub 就完了。要求更高我可能也是直接用 kafka 就好了。

celery 很早以前试过,太复杂了,不能忍。后面一直没有找到 celery 有优势的情况,每次都觉得,用它除了增加自己的心智负担,并没有什么好处。

3127 次点击
所在节点    Python
11 条回复
kongkongyzt
2022-05-02 18:42:14 +08:00
和你一样,简单的我用 redis 。复杂一些,对可观测,性能和可用性有要求的我就用云厂商提供的 Pulsar
ipwx
2022-05-02 18:54:34 +08:00
这两种不是一个维度的吧。。。一个 message passing, 一个是 job queue 。

和 celery 对标的是使用了 redis 的 rq 才对。
lolizeppelin
2022-05-02 18:55:16 +08:00
核心是用好 rabbitmq,celery 行不行我不知道
反正 rabbitmq 是很行的
gengchun
2022-05-02 19:39:07 +08:00
@ipwx 说的就是这个问题,redis 不是正宗的消息服务(message broker)。如果我换一个例子,比如说用 rabbitmq ,是用 pika 还是 celery 的话,可能更好一些。

你说的 job queue 。kafka 有一个叫 kq 的库。现实是非常简单的。kq, rq 这类库的实现说白了就是 Worker, Queue, Job, Message 这四个类。这个其实是一个类似于 web 服务的 MVC 的范式。就和不能说所有的 web 服务都必须要有 MVC 一样,不是所有用到消息服务的,都一定要遵守这个范式。
neoblackcap
2022-05-02 20:13:52 +08:00
其实对照功能列表就知道了,如果你觉得 celery 给你带来的成本高于收益,很大程度你是对的,那么不用就好了。没有什么说一定要上 celery 的。
至于用 celery 的团队也没有错,有可能是他们首先比较熟悉。然后他们可能用到了 celery 的一些特性,比如既需要定时任务,也需要 job queue 。
没有什么选型定式,看个人需要。
tulongtou
2022-05-02 20:25:36 +08:00
python 开发的网站,后台耗时的任务用 celery 无缝集成啊,我们用了 5 年了,一直很稳定。

楼主有什么好用的方案可以替代么?
lolizeppelin
2022-05-03 10:25:02 +08:00
kafka 不好做消息返回,没有确达,这点天生就是不如 rabbitmq 的

具体要不要用 rabbitmq 是要看你业务流程的.

所以 redis/kafka 并不是满足很多情况...

celery 据说比较菜所以我才没说 celery 而是直接说 rabbitmq
leonme
2022-05-03 18:29:17 +08:00
@lolizeppelin kafka 没有确达?
lolizeppelin
2022-05-04 11:26:38 +08:00
@leonme
发现我理解错了,我都是用 rabbitmq 的以前试用 kafka 用 ack 概念去套了下发现 kafka 没有客户端 ack 以为就客户端不能确达..
kafka 可以用偏移来确达达的...也可以用单分区来做 callback

也就是说 kafka 可以和 rabbitmq 一样做 rpc ,只是因为 kafka 异步批量的高性能特性并不特别适合 rpc 。
也就是说只要有了适合的框架积累楼主说得没错.
gengchun
2022-05-04 13:13:40 +08:00
@neoblackcap 这个当然谈不上对错。只是想看看一开始选 celery 会是基于什么考虑。

@tulongtou 我估计你们应该是 django 这类,而且要有个任务展示管理的页面。
rev1si0n
2022-05-04 16:09:55 +08:00
感觉 celery 太重了,只有之前写爬虫用过一次

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/850533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX