spy0578
V2EX  ›  问与答

Python celery 使用场景

  •  
  •   spy0578 · Jun 18, 2019 · 2826 views
    This topic created in 2549 days ago, the information mentioned may be changed or developed.

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

    5 replies    2019-06-19 12:36:06 +08:00
    leishi1313
        1
    leishi1313  
       Jun 18, 2019 via Android
    celery 也可以用 redis 当 broker,这事你琢磨琢磨
    spy0578
        2
    spy0578  
    OP
       Jun 18, 2019
    @leishi1313 是的 这个我知道
    用 celery 最好是不是使用多个 worker
    leishi1313
        3
    leishi1313  
       Jun 19, 2019 via Android
    hmm,不是很明白你问的到底是什么,简短点的对你所有问题的答案是都可以,可以用 celery 处理 redis 消息,可以用多个 worker,但是问题是你的需求是什么呢,所有的程序设计都是跟需求紧密相关的。你要是就想玩玩 celery 那好好跟着文档走就好了,再看看别人的项目
    spy0578
        4
    spy0578  
    OP
       Jun 19, 2019
    @leishi1313 需求是这样的:
    会有大量的消息在 redis 上需要被处理。目前只是用单线程来处理消息,肯定会有性能瓶颈。
    所以说考虑使用多线程或者多进程方式来处理消息。
    celery 是用作多进程的 worker 调度么?
    leishi1313
        5
    leishi1313  
       Jun 19, 2019 via Android
    @spy0578 是这样子的,如果你的消息是由其他的应用发布到 redis 的,那你用什么都无所谓,要是是 io 密集型的任务的话用各种异步框架不断地从 redis 里拉出消息处理就好了,cpu 密集型的就别为难 python 了,python 有 GIL,计算也不快。如果消息发布啦消息处理啦本身都是一个系统的两部分,那你可以考虑 celery 或者情况点 python-rq,多起几个 worker 就好了。各种爬虫啦,推送系统啦都是这个思路
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3035 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:59 · PVG 21:59 · LAX 06:59 · JFK 09:59
    ♥ Do have faith in what you're doing.