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中的Numpy入门教程
Apr 26 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
Python中openpyxl实现vlookup函数的实例
Oct 28 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
python字典与json转换的方法总结
Dec 28 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
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php开启openssl的方法
2014/05/15 PHP
PHP整合PayPal支付
2015/06/11 PHP
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jsonp原理及使用
2013/10/28 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
高三英语教学反思
2016/03/03 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript