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插入排序算法的实现代码
Nov 21 Python
Python的Flask框架与数据库连接的教程
Apr 20 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
python实现用户管理系统
Jan 10 Python
解决Python安装后pip不能用的问题
Jun 12 Python
python实现猜数字小游戏
Mar 24 Python
python try 异常处理(史上最全)
Mar 07 Python
Django自定义用户登录认证示例代码
Jun 30 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 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
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
mongodb和php的用法详解
2019/03/25 PHP
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
微信小程序设置滚动条过程详解
2019/07/25 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
轻松实现python搭建微信公众平台
2016/02/16 Python
Python守护线程用法实例
2017/06/23 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
Python3中详解fabfile的编写
2018/06/24 Python
浅析python参数的知识点
2018/12/10 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
详解Python 中的容器 collections
2020/08/17 Python
python 操作excel表格的方法
2020/12/05 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
商业用房租赁协议书
2014/10/13 职场文书
毕业证明模板
2015/06/19 职场文书
安全学习心得体会范文
2016/01/18 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
python实现简单的聊天小程序
2021/07/07 Python