python3中celery异步框架简单使用+守护进程方式启动


Posted in Python onJanuary 20, 2021

安装celery

sudo pip install celery

实例化 celery

from celery import Celery
app = Celery("testapp")
# 导入配置
app.config_from_object('celery_tasks.config')
 
# 自动添加任务
app.autodiscover_tasks(["celery_tasks.test","celery_tasks.test2"])

简单配置

# 任务队列的地址
broker_url = "redis://127.0.0.1/14"
# 任务处理结果的保存地址[如果不需要接收任务处理结果,那么,可以不设置下面]
result_backend = "redis://127.0.0.1/15"

文件目录如下

.
├── config.py
├── main.py
├── test
│  └── tasks.py
└── test2
  ├── __init__.py
  └── tasks.py

一个应用一个文件夹

异步任务的文件名必须是tasks.py

在需要执行该任务的地方导入该任务

from celery_tasks.test.tasks import test
from celery_tasks.test2.tasks import test as test2
 
test_id = test.delay()
test2_id = test2.delay()
 
print(test_id)
print(test2_id)

调用该异步任务会马上放回一个id,执行结果可以在result_backend中通过id找到

/home/python/.virtualenvs/kol_site_py3/bin/python /home/python/projects/supervisor/supervisor/celery_tasks/test.py
a6e13745-c05b-496d-bbbe-2b636f84009c
d92d50b4-0ba1-4b05-9e96-eeb92a854929
 
Process finished with exit code 0
127.0.0.1:6379[15]> keys *
 1) "celery-task-meta-2a9c0a4b-5b40-4121-9986-a8430fc6b235"
 2) "celery-task-meta-0f16e227-393f-48ea-b41b-3419df84528e"
 3) "celery-task-meta-fbf31a20-6eee-4298-8a91-214d2e5c9399"
 4) "celery-task-meta-61f012c0-bde1-4344-9e1c-b5e8a7b93902"
 5) "celery-task-meta-074a659f-d76f-4818-8516-f098d1b900ed"
 6) "celery-task-meta-8a89c4db-f2e2-484b-94ee-e1af9911c69f"
 7) "celery-task-meta-0012966d-e8fd-483b-b8ac-d160d65c8221"
 8) "celery-task-meta-f97a452d-3812-4950-bfd9-02ff9e69a4b2"
 9) "celery-task-meta-4bebe710-7725-43f5-b0f7-9a35b57ba3b1"
10) "celery-task-meta-4b1cca23-31c3-4c82-a99f-bbe306846191"
11) "celery-task-meta-4cdf3a68-7df4-4bdf-8f54-abe6be83df3a"
12) "celery-task-meta-d92d50b4-0ba1-4b05-9e96-eeb92a854929"
13) "celery-task-meta-17265693-ba36-4f6c-80c8-d89a52f549f7"
14) "celery-task-meta-d62bbf16-6469-40a7-bc25-61b553014d76"
15) "celery-task-meta-4cca0f47-2f2d-45e6-8341-52264e50d969"
16) "celery-task-meta-1fd1e52a-00e1-486a-a224-36bd0fbb5d4a"
17) "celery-task-meta-af3b9536-91a6-4ae3-ab9b-59755bfb4883"
18) "celery-task-meta-b5710e2a-1905-44fd-8b11-4d7057113291"
19) "celery-task-meta-bebeb902-cce1-4edb-bdac-734ed6dc16ae"
20) "celery-task-meta-2771b961-694f-4727-9b19-07928834475e"
21) "celery-task-meta-8c683476-5cec-4933-8370-73793d656e23"
22) "celery-task-meta-6c8e6763-a416-4c02-9689-a0bb38bf26a6"
23) "celery-task-meta-7a4edb71-b13b-4f0f-b882-408716bb3ba9"
24) "celery-task-meta-4e368ca3-f686-4215-aed7-f0c6463cfac9"
25) "celery-task-meta-757f196d-c377-4f38-982d-700fa4f45c6b"
26) "celery-task-meta-094ea32e-5cf8-41c5-bf63-fb629e0e1e67"
27) "celery-task-meta-2e1f2188-0806-41f1-8eb8-4a0f73ec2aca"
28) "celery-task-meta-fd7e8fea-c738-4d49-b13d-c5d782eeaa96"
29) "celery-task-meta-e476f036-7192-4687-b9b7-c6a06556b4c3"
30) "celery-task-meta-2463c15f-5903-4381-8646-1b2aa6418ca0"
31) "celery-task-meta-a6e13745-c05b-496d-bbbe-2b636f84009c"
32) "celery-task-meta-f4f2d940-3e16-4d78-a0c4-3766eb91c908"
33) "celery-task-meta-5a1eaba8-0675-4e82-aedc-fee801ff31ef"
127.0.0.1:6379[15]>

启动celery的方法

# 最终在终端运行这个main文件
celery -A 应用包名 worker -l info
 
# 我们当前项目,在后端项目根目录下运行
celery -A celery_tasks.main worker -l info
# 守护进程
celery multi start w1 -A celery_tasks.main -l info --logfile=./celerylog.log
# 停止和重启 分别将 start 改为 stop / restart

守护进程的另一种方式,使用supervisor,这是一个管理进程的工具,这种启动方式就是用supervisor接管celery。

到此这篇关于python3中celery异步框架简单使用+守护进程方式启动的文章就介绍到这了,更多相关python3 celery异步使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中zip()函数用法实例教程
Jul 31 Python
Python3实现从指定路径查找文件的方法
May 22 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python 返回列表中某个值的索引方法
Nov 07 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
django中间键重定向实例方法
Nov 10 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
如何理解Python中的变量
Jun 01 Python
Python基础之操作MySQL数据库
May 06 Python
Django+Django-Celery+Celery的整合实战
Jan 20 #Python
详解Python Celery和RabbitMQ实战教程
Jan 20 #Python
详解python3类型注释annotations实用案例
Jan 20 #Python
python-jwt用户认证食用教学的实现方法
Jan 19 #Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 #Python
python 自动识别并连接串口的实现
Jan 19 #Python
python爬取抖音视频的实例分析
Jan 19 #Python
You might like
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
python元组操作实例解析
2014/09/23 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python_LDA实现方法详解
2017/10/25 Python
Python进程间通信之共享内存详解
2017/10/30 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
python实现根据文件格式分类
2019/10/31 Python
Python列表解析操作实例总结
2020/02/26 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
幼儿教师求职信
2014/05/24 职场文书
2014年度思想工作总结
2014/11/27 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL