| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Django 中celery的使用 -> 正文阅读 |
|
[Python知识库]Django 中celery的使用 |
1、django应用Celerydjango框架请求/响应的过程是同步的,框架本身无法实现异步响应。 但是我们在项目过程中会经常会遇到一些耗时的任务, 比如:发送邮件、发送短信、大数据统计等等,这些操作耗时长,同步执行对用户体验非常不友好,那么在这种情况下就需要实现异步执行。 异步执行前端一般使用ajax,后端使用Celery。 2 、项目应用django项目应用celery,主要有两种任务方式,一是异步任务(发布者任务),一般是web请求,二是定时任务。 celery组成请看celery介绍_宠乖仪的博客-CSDN博客 本文使用的是redis数据库作为消息中间件和结果存储数据库 1.异步任务redis1.安装库
2.celery.py 在主项目目录下,新建 celery.py 文件:
注意:是和settings.py文件同目录,一定不能建立在项目根目录,不然会引起 celery 这个模块名的命名冲突 ? 同时,在主项目的init.py中,添加如下代码:
? 3.settings.py 在配置文件中配置对应的redis配置:
? 注意:所有配置的官方文档:Configuration and defaults — Celery 5.2.0b3 documentation ? 4.tasks.py 在子应用下建立各自对应的任务文件tasks.py(必须是tasks.py这个名字,不允许修改)
5.调用任务
? ? 6.启动celery
注意 :celery_study是项目名
这是由于版本差异,需要卸载已经安装的python环境中的 redis 库,重新指定安装特定版本(celery4.x以下适用 redis2.10.6, celery4.3以上使用redis3.2.0以上):
7.获取任务结果 在 views.py 中,通过 AsyncResult.get() 获取结果
? AsyncResult类的常用的属性和方法:
2.定时任务?? ?在第一步的异步任务的基础上,进行部分修改即可 1.settings.py
说明(更多内容见文档:Periodic Tasks — Celery 5.2.0b3 documentation):
在task.py中设置了日志
2.启动celery (两个cmd)分别启动worker和beat ?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:22:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |