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 中__name__ = '__main__' 的作用
Jul 05 Python
Python合并多个装饰器小技巧
Apr 28 Python
Python从MP3文件获取id3的方法
Jun 15 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
keras得到每层的系数方式
Jun 15 Python
python退出循环的方法
Jun 18 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
javascript 节点遍历函数
2010/03/28 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
zookeeper python接口实例详解
2018/01/18 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python登录注册验证功能实现
2018/06/18 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
如何写好升职自荐信
2014/01/06 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
房产授权委托书范本
2014/09/22 职场文书
申报优秀教师材料
2014/12/16 职场文书
MySQL优化及索引解析
2022/03/17 MySQL
python playwright之元素定位示例详解
2022/07/23 Python