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实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
pyhton列表转换为数组的实例
Apr 04 Python
Python登录注册验证功能实现
Jun 18 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 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
15种PHP Encoder的比较
2007/03/06 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php防攻击代码升级版
2010/12/29 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
PHP递归算法的简单实例
2019/02/28 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
重定向实现代码
2006/11/20 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Python函数和模块的使用总结
2019/05/20 Python
Python3 批量扫描端口的例子
2019/07/25 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
传媒专业推荐信范文
2013/11/23 职场文书
校班主任推荐信范文
2013/12/03 职场文书
运动会入场词200字
2014/02/15 职场文书
社团活动总结格式
2014/08/29 职场文书
买房协议书范本
2014/10/23 职场文书
李强感恩观后感
2015/06/17 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js