分布式任务队列:Celery

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式任务队列:Celery相关的知识,希望对你有一定的参考价值。

一、Celery 安装与应用

关于 Celery 的内容,先依次看如下两篇文章,让你有个了解:

http://blog.csdn.net/happyanger6/article/details/51404837

https://www.liaoxuefeng.com/article/00137760323922531a8582c08814fb09e9930cede45e3cc000

1、安装 Celery 和 Redis

pip install celery    # 这里我的 python 版本是 python2.7 ,如果是 2.6 的版本,请使用 pip install celery==3.0 来安装
pip install redis # redis 作为中间人,用于接收和发送消息

2、编写一个 celery 应用程序,用来处理任务

[root@localhost ~]# cat task.py 
#!/usr/bin/env python
#-*- coding: utf8 -*-

from celery import Celery

app = Celery("task", broker="redis://127.0.0.1:6379/5", backend="redis://127.0.0.1:6379/6") # 启动一个Celery实例,第一个参数是本模块的名字,第二个参数用于指定中间人的URL,第三个参数用于存储任务的处理结果,5和6表示使用redis的第五和第六个库

@app
.task # 添加一个程序,这个程序用来处理用户发过来的任务 def add(x, y): # 定义程序,这里我就定义一个加法运算的程序 return x+y

3、启动 Celery 处理任务

[[email protected] ~]# celery -A task worker --loglevel=info    # -A参数用于指定程序,worker表示在后台运行,--loglevel表示运行的日志等级

4、发送任务给 Celery 进行处理

In [1]: from task import add

In [2]: add.delay(2, 3)    # 相当于执行了add()函数,执行后的结果只能在celery控制台看到
Out[2]: <AsyncResult: 6e5b23d6-f3ba-48ed-8007-d41520830410>

In [3]: add.delay(5, 10)
Out[3]: <AsyncResult: f5e51094-af6c-447c-ae6e-e07b02ae6983>

 

二、Celery 多实例

 

 

 

       

 

 

 

 

 

      

 

以上是关于分布式任务队列:Celery的主要内容,如果未能解决你的问题,请参考以下文章

分布式任务队列Celery入门与进阶

Celery 分布式任务队列快速入门

Celery 分布式任务队列快速入门

Celery 分布式任务队列快速入门

Celery 分布式任务队列快速入门

[源码分析] 分布式任务队列 Celery 之 发送Task & AMQP