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: 任务队列, 可以有多个任务队列, 可以把不同类型的消息放入不同的队列中。

 

posted @ 2015-12-19 19:33  LeslieFang  阅读(744)  评论(0编辑  收藏  举报