一、Celery介绍和基本使用
Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子:
你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情。
你想做一个定时任务,比如每天检测一下你们所有客户的资料,如果发现今天 是客户的生日,就给他发个短信祝福
Celery 在执行任务时需要通过一个消息中间件来接收和发送任务消息,以及存储任务结果, 一般使用rabbitMQ or Redis,后面会讲
1.1 Celery有以下优点:
简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的
高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务
快速:一个单进程的celery每分钟可处理上百万个任务
灵活: 几乎celery的各个组件都可以被扩展及自定制
Celery基本工作流程图
首先安装python
安装python时候需要编译,用到configure 需要安装gcc
所以在安装python之前安装gcc :
执行yum install gcc-c++ 安装gcc
接下来安装python:
1. 首先,通过wget下载Python安装包
[root@TDDBA ~]# wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
2. 解压该文件
[root@TDDBA python]# tar -zxvf Python-2.7.6.tgz
[root@TDDBA python]# ls
Python-2.7.6 Python-2.7.6.tgz
3. 配置安装路径
先创建路径 mkdir /usr/local/python2.7.6
[root@TDDBA Python-2.7.6]# ./configure --prefix=/usr/local/python2.7.6
4. 编译和安装
[root@TDDBA Python-2.7.6]# make
[root@TDDBA Python-2.7.6]# make install
5. 配置软链接
将原来的python路径mv到另一个路径
mv /bin/python /bin/old_python
[root@TDDBA /]# ln -s /usr/local/python2.7.6/bin/python /bin/python
这个时候在任何路径下输入python,都是新版本
[root@TDDBA /]# python
Python 2.7.6 (default, Mar 16 2013, 19:12:21)
[GCC 4.4.6 20120305 (Red Hat4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
把yum中python的路径更改为old_python
打开yum配置文件
vi /usr/bin/yum
将第一句话改成图片中内容,这样python就安装好了
安装setuptools
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.0.1.zip --no-check-certificate
unzip setuptools-18.0.1.zip
cd setuptools-18.0.1
python setup.py install
安装如果报如下错误,因为zlib没有安装,执行下面两句
yum install zlib
yum install zlib-devel
安装好zlib之后,进入python源路径,重新进行以下操作:
make
make install
执行完成之后重新安装setuptools
安装pip
wget https://pypi.python.org/packages/7e/71/3c6ece07a9a885650aa6607b0ebfdf6fc9a3ef8691c44b5e724e4eee7bf2/pip-7.1.0.tar.gz#md5=d935ee9146074b1d3f26c5f0acfd120e
下载之后
tar -zxvf pip-7.1.0
cd pip-7.1.0
python setup.py install
安装成功之后,同样进入python源路径,重新编译
make
make install
安装好之后,需要创建软链接,其他地方才可以用pip,
ln -s /usr/local/python2.7.6/bin/pip /bin/pip
我在安装好pip之后安装celery始终失败,在网上看了下说可以先把pip升级下,于是就升级了pip,由于pip是走国外的官网下载的 网速特别慢,所以需要设置下超时时间,具体命令:
pip install --default-timeout=1000 -U pip
安装成功
安装celery
因为我用的是redis,安装celery时,对 Redis 的支持需要额外的依赖。你可以用celery[redis]捆绑同时安装 Celery 和这些依赖:
$pip install --default-timeout=1000 -U celery[redis]==3.1.24
安装成功。