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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
在Django的URLconf中使用多个视图前缀的方法
Jul 18 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python写程序统计词频的方法
Jul 29 Python
安装docker-compose的两种最简方法
Jul 30 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
python模拟斗地主发牌
Apr 22 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
非常好用的Zend Framework分页类
2014/06/25 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
Ext 今日学习总结
2010/09/19 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python获取任意xml节点值的方法
2015/05/05 Python
python基本语法练习实例
2017/09/19 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
毕业生机械建模求职信
2013/10/14 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Python面向对象之成员相关知识总结
2021/06/24 Python