zoukankan      html  css  js  c++  java
  • celery 入门

    什么是 celery

    celery 是一个分布式异步任务队列

    分布式是说可以部署在不同的物理机上,实现集群

    异步是说任务是异步执行的

    架构如图:3部分, 消息队列,  worker 进程,  执行结果存储

    用户就不停的往消息队列中扔 task, 多个workers 并行的从消息队列中取出  task 执行, 执行完毕后将执行状态和结果存入后端

    中间的 workers 可以在一台物理机上,也可以在多台物理机上

    本机演示:

    from celery import Celery
    
    app = Celery('tasks', backend='redis://localhost', broker='redis://localhost:6379/0')
    
    @app.task
    def add(x,y):
        return x + y
    celery -A tasks worker --loglevel=info

     

    app : 运行的 app 的名字

    transport : 消息队列,这里使用 redis

    results: 后端结果存储,这里也使用 redis

    concurrency : 通过 prefork (多进程)默认最多会起 4 个worker 进程并行执行,默认是 CPU 的核心数。

    当任务数大于 4 时 未执行的任务会进入任务队列排队等待执行。

    queues: 任务队列, 可以有多个任务队列, 可以把不同类型的消息放入不同的队列中。

  • 相关阅读:
    1001. A+B Format
    1011. World Cup Betting
    1015. Reversible Primes
    1005. Spell It Right
    1020. Tree Traversals
    java初始
    lvds接口介绍
    优化对比度增强的实时图像视频去雾
    JavaScript通过attachEvent和detachEvent方法处理带参数的函数
    Chrome类似于Firefox Firebug的功能
  • 原文地址:https://www.cnblogs.com/lesliefang/p/5059625.html
Copyright © 2011-2022 走看看