Django Celery异步任务队列

news2024/11/19 18:38:10

 https://github.com/celery/celery

celery的GitHub源码文件

Celery是一个异步任务队列,需要python的环境,一般可用于python的web开发框架“食”用,例如Django。

 

场景

        例如在自己开发网站时,写发送短信验证码的部分,往往需引用第三方包,同时这段发送短信的代码会花费较长时间(好几秒、甚至十几秒),点击了“发送短信验证码”并不会立即开始倒计时,而是等了好几秒之后,才开始,这让用户感觉很卡顿,我们在体验腾讯云、阿里云的,往往是一点击就开始倒计时,虽然短信可能得等一小会,但界面却是立即响应的。      

这里可以给一段简单的逻辑:

def get(self, request, mobile):    # 1.创建连接Redis对象    ... get_redis_connection ...        # 2. 随机生成短信验证码    ... ...        # 3.把验证码存入Redis缓存    ... setex() ...    ... setex() ...            # 4.通过第三方SDK发送短信    XXX().send_ ...  # 这一步往往十分耗时(好几秒、甚至十几秒)        # 5.最后响应回前端页面    return Response(...)

    也就是说执行到最后Response,有个send步骤太慢,这时候我们就可以使用celery解决这个阻塞问题。(执行完后返回结果,这段时间不用等待,提高系统的吞吐量和响应时间)

配置示例

    本节以Django项目为示例:

创建py目录celery_tasks在后端项目的一级目录下
该目录下创建main的py文件(作为celery服务启动的文件)
该目录下创建config的py文件(作为存储配置的文件)

这就是celery最基本的文件目录情况。目录结构创建完之后,安装celery(pip install celery或者编译器直接导入)。

    在celery_tasks目录下创建包,要用什么任务就自行创建什么包。

    这里创建xxx的py目录,然后在其下面创建 tasks 的py文件【注意这个名字是固定的】

       比如配置发短信,那么在main.py就需①配置celery对象、②加载config配置文件、③注册异步任务和config.py配置Redis服务器位置。使用起来还是比较容易的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Http不转换成Https会有什么后果?

自从互联网诞生以来,大家一开始接触的就是http站点,类似于http://域名,看习惯了也用习惯了。不过,随着人们网络安全意识的提高,越来越多的http站点已经被https站点所替代,逐年在增加。那么,http…

艾美捷C1q天然蛋白化学性质和相关研究方案

艾美捷C1q天然蛋白背景: C1q是补体系统C1的组成成份。它是一个巨分子量 (460kD) 糖蛋白。一个C1q分子由18条多肤链组成,含A、B、C 3条不同链。补体系统通过经典途径、旁路途经和甘露糖结合凝集素途径激活,而C1q是补体经典途径重要的启动分子&#xff0c…

【干货】STM32通过ADC模拟看门狗实现掉电保存

1.前言 很多时候我们需要将程序中的一些参数、数据等存储在EEPROM或者Flash中,达到掉电保存的目的。但有些情况下,程序需要频繁的修改这些参数,如果每次修改参数都进行一次保存,那将大大降低存储器的寿命。尤其是单片机内部Flash&…

uniapp中使用微信小程序custom-tab-bar

uniapp中使用微信小程序custom-tab-bar1、配置信息2、添加 tabBar 代码文件3、 编写 tabBar 代码4、踩坑5、解决今天把小程序项目中的 tabBar 改为使用自定义的tabbar 其实很简单,只要按照小程序开发文档中的步骤来做 1、配置信息 在 app.json 中的 tabBar 项指定…

移动魔百盒UNT401A、UNT403A、UNT413A_晶晨S905L3A/B芯片_红外蓝牙语音_免拆卡刷固件

移动魔百盒UNT401A、UNT403A、UNT413A_晶晨S905L3A/B芯片_红外蓝牙语音_免拆卡刷固件,28G或216G配置-安卓9.0 支持最新出UWE5621DS/MT7661/MT7663/MT7668/RTL8822CS及以往其他无线型号-当贝红外蓝牙语音免拆卡刷包固件。 固件特点: 1、修改dns&#xf…

使用EasyCV Mask2Former轻松实现图像分割

作者:贺弘 谦言 临在 导言 图像分割(Image Segmentation)是指对图片进行像素级的分类,根据分类粒度的不同可以分为语义分割(Semantic Segmentation)、实例分割(Instance Segmentation)、全景分割(Panoptic Segmentation)三类。图像分割是计算机视觉中的…

CDD文件——CANdelaStudio

诊断协议那些事儿 本文为诊断协议那些事儿专栏文章,在CANoe诊断测试一文中介绍了导入CDD文件,CDD(CANdela Diagnostic Descriptions,CANdela诊断描述)是诊断数据的数据库,与CAN消息的数据库文件DBC类似,也就是上文提到…

【minimal problem】资料整理

minimal problem use as few data as to generate a system of algebraic equaIons with a finite number of soluIons 使用尽可能少的数据来生成代数系统 解数有限的方程 以往工作 基于神经网络解一元高次方程 代码实战:解低次方程 代码实战:解高次方…

基于象鼻虫损害优化算法求解装箱问题附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

VALID/READY 握手机制

VALID/READY 握手机制 AXI 总线共有 5 个独立的通道,分别为写地址,写数据,写回应,读地址,读数据通道。5 条通道相互独立,有一些细小的差别,但共同使用一套握手机制:VALID/READY 机制…

代码随想录——最长回文子串

题目 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s “cbbd” 输出:“bb” 示例 3&a…

六、RTMP协议 时间戳

RTMP时间戳 基本介绍 RTMP中时间戳的单位为毫秒(ms)时间戳为相对于某个时间点的相对值时间戳的长度为32bit,不考虑回滚的话,最大可表示49天17小时2分钟47.296秒Timestamp delta单位也是毫秒,为相对于前一个时间戳的一个无符号整数&#xff1…

【计算机毕业设计】奖学金管理系统源码

一、系统截图(需要演示视频可以私聊) 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐…

【数据结构】---详解二叉树--- ⌈知识点总结⌋ 和 ⌈常见力扣题目⌋ 确定不来看吗?

前言 ❤️ 铁汁们大家好,欢迎大家来到出小月的博客里, 🤗🤗🤗之前呢,我分享了数据结构的栈和队列。。。。今天呢,给大家分享关于树的内容包括了树的结构、遍历和一些题目,希望大家看…

如何使用Github的Action实现博客的自动部署

如何使用Github的Action实现博客的自动部署 以下是详细的采坑记录,花费了不少时间。 现在的状态是,更新完博客时,需要执行以下的指令: hexo clean && hexo g && hexo d && git add . && git …

Git分布式版本控制工具

layout: post title: Git分布式版本控制工具 description: Git分布式版本控制工具 tag: 开发工具 文章目录git 基本配置与指令设置用户信息为常用指令设置别名解决gitbash乱码问题基础操作指令:初始化、添加到暂存区、提交到仓库、查看状态、日志版本回退git reset配…

智工教育:一级建造师《公路实务》考前必背知识点

一、路基工程 1.地基表层碾压处理压实度控制标准为:二级及二级以上公路一般土质应不小于90%;三、四级公路应不小于85%。 2.石质路堑施工技术 (1)应逐级开挖,逐级按设计要求进行防护。 (2)施工…

高效工具-局域网服务器访问公网

文章目录任务需求方法1:使用CCproxy代理简单介绍下载安装配置逻辑本机配置客户机配置成功测试方法2:修改MAC地址查询本机MAC地址修改内网服务器MAC地址打开rc-local.service服务添加Install段创建rc.local文件添加核心的修改MAC地址代码创建链接启动服务成功测试参考…

线上超市小程序开发有什么作用_超市小程序有什么功能呢

1。开发超市小程序有什么价值? 1、对于消费者来说:通过超市小程序能够更加直接的购买到想要的产品,消费者无需再到门店寻找商品可以直接通过超市小程序进行在线浏览;通过在线搜索的方式能够更加便捷的搜索到相应的商品&#xff0…

mysql连接池的实现

文章目录前言一、池化技术二、什么是数据库连接池三、为什么使用数据库连接池不使用连接池使用连接池长连接和连接池的区别四、数据库连接池运行机制五、连接池和线程池的关系六、连接池设计要点连接池设计逻辑构造函数初始化请求获取连接归还连接析构连接池前言 本文是mysql连…