今天开始,我将以三个篇幅,介绍分布式任务调度系统Celery的详细使用。包括安装,开发使用,并且配合supervisor,flower等工具进行系统化部署和使用。希望能帮助到需要的朋友们,图文创作不易,欢迎关注。
一,简介
Celery是一个分布式任务调度系统,简单、灵活、可靠,是一个处理大量消息的分布式系统。专注于实时处理的异步任务队列,同时也支持任务调度。
Celery的架构由三部分组成:
AMQP broker:即消息中间件,Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等。
celery workers:即任务执行单元,是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。
task result store:即任务执行结果存储,用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等。
二,Celery安装
2.1 安装celery相关包
pip3 install eventlet
pip3 install celery
pip3 install pymongo
pip3 install flower
2.2 配置环境变量
export PATH=/usr/local/python3/bin:$PATH
echo "PATH=/usr/local/python3/bin:$PATH" >> /etc/profile.d/python3.sh
cd /etc/profile.d/
chmod 777 python3.sh
2.3 oracle环境变量配置
如果用到oracle数据库,需要增加oracle环境变量配置信息到python3.sh
cat /etc/profile 查看oracle环境变量配置
export PATH=/opt/oracle/instantclient_11_2:$PATH
echo "PATH=/opt/oracle/instantclient_11_2:$PATH" >> /etc/profile.d/python3.sh
cd /etc/profile.d/
chmod 777 python3.sh
# locate libclntsh.so.11.1
/opt/oracle/instantclient_11_2/libclntsh.so.11.1
# vim /etc/ld.so.conf
在最后一行添加如下内容:
/opt/oracle/instantclient_11_2
执行ldconfig
# ldconfig
三,Celery使用
3.1 celery --help
3.2 celery work --help
3.3 应用实例代码结构
3.4 运行后rabbitmq中内容
3.5 启动worker命令
本文由挨踢程序猿原创,欢迎关注,带你一起长知识!