Python celery 使用场景

2019-06-18 12:38:45 +08:00
 spy0578

内部消息发布到 redis 中,此时对消息的处理是否需使用 celery ?并且使用 celery 该如何设计消息处理的机制?

2148 次点击
所在节点    问与答
5 条回复
leishi1313
2019-06-18 13:06:05 +08:00
celery 也可以用 redis 当 broker,这事你琢磨琢磨
spy0578
2019-06-18 14:56:25 +08:00
@leishi1313 是的 这个我知道
用 celery 最好是不是使用多个 worker
leishi1313
2019-06-19 01:31:15 +08:00
hmm,不是很明白你问的到底是什么,简短点的对你所有问题的答案是都可以,可以用 celery 处理 redis 消息,可以用多个 worker,但是问题是你的需求是什么呢,所有的程序设计都是跟需求紧密相关的。你要是就想玩玩 celery 那好好跟着文档走就好了,再看看别人的项目
spy0578
2019-06-19 10:12:20 +08:00
@leishi1313 需求是这样的:
会有大量的消息在 redis 上需要被处理。目前只是用单线程来处理消息,肯定会有性能瓶颈。
所以说考虑使用多线程或者多进程方式来处理消息。
celery 是用作多进程的 worker 调度么?
leishi1313
2019-06-19 12:36:06 +08:00
@spy0578 是这样子的,如果你的消息是由其他的应用发布到 redis 的,那你用什么都无所谓,要是是 io 密集型的任务的话用各种异步框架不断地从 redis 里拉出消息处理就好了,cpu 密集型的就别为难 python 了,python 有 GIL,计算也不快。如果消息发布啦消息处理啦本身都是一个系统的两部分,那你可以考虑 celery 或者情况点 python-rq,多起几个 worker 就好了。各种爬虫啦,推送系统啦都是这个思路

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

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

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

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

© 2021 V2EX