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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
python实现同时给多个变量赋值的方法
Apr 30 Python
Python读写配置文件的方法
Jun 03 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
python读取oracle函数返回值
Jul 18 Python
pandas 选择某几列的方法
Jul 03 Python
Django添加feeds功能的示例
Aug 07 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
Django自定义YamlField实现过程解析
Nov 11 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
python 实现的截屏工具
May 08 Python
如何用Python搭建gRPC服务
Jun 30 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
咖啡的化学
2021/03/03 咖啡文化
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
javascript实现3D切换焦点图
2015/10/16 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
Python提取网页中超链接的方法
2016/09/18 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
Python中字符串与编码示例代码
2019/05/20 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
自我评价中英文语句
2013/11/30 职场文书
中医专业职业生涯规划书范文
2014/01/04 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
建议书范文
2015/02/05 职场文书
防卫过当辩护词
2015/05/21 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
nginx lua 操作 mysql
2022/05/15 Servers