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中解析json格式文件的方法示例
May 03 Python
Python探索之自定义实现线程池
Oct 27 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
python实现停车管理系统
Nov 30 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
python 实现视频 图像帧提取
Dec 10 Python
pandas分组聚合详解
Apr 10 Python
Python matplotlib可视化实例解析
Jun 01 Python
python中的测试框架
Nov 13 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
Python内置函数——__import__ 的使用方法
2017/11/24 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
python 星号(*)的多种用途
2020/09/21 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
介绍一下gcc特性
2015/10/31 面试题
学生励志演讲稿
2014/01/06 职场文书
乔迁宴答谢词
2014/01/21 职场文书
大学生活动策划方案
2014/02/10 职场文书
基督教婚礼主持词
2014/03/14 职场文书
村抢险救灾方案
2014/05/09 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
法定代表人免职证明
2015/06/24 职场文书
学生会主席任命书
2015/09/21 职场文书