Django项目后端实现注册功能---异步发送短信(celery)。

本文介绍了如何使用Celery在Django项目中实现短信异步发送,以减少响应延迟,优化用户体验。步骤包括安装Celery、配置环境、创建任务并启动服务,以及在视图中调用任务。短信发送通过Redis broker异步处理,确保了倒计时实时更新。
摘要由CSDN通过智能技术生成

代码gitee仓库:代码仓库

一, 为什么要使用celery异步发送短信?

	发送短信是耗时操作,影响响应时间,响应延迟会造成用户界面的倒计时延迟。

二,实现目的。

	用户点击完获取后,视图越快响应,就能越快显示倒计时,加快短信发送到用户的时间。

三,celery异步发送短信—过程。

1.python3安装celery(环境:windows10;python版本:python3.9)

pip install -U Celery

2.在项目根目录创建一个单独的包,用来存放celery相关的配置文件和主要代码。
在这里插入图片描述
3.在新创建的celery_tasks(名字随意)包下创建main.py文件,在main.py文件中需要配置的有:
3.1 设置django环境。
3.2 创建celery对象。
3.3 设置 broker。
3.4 celery自动检测任务。

import os

# 1 设置django环境
# set the default Django settings module for the 'celery' program.
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo.settings')

# 2 创建celery对象
app = Celery('celery_tasks')

# 3 设置 broker
app.config_from_object("celery_tasks.config")

# 4celery自动检测任务  这里会自动去celery_tasks.sms下找tasks.py
app.autodiscover_tasks(['celery_tasks.sms'])

4.在celery_tasks包下创建config.py文件,存放作为broker的redis配置。

在这里插入图片描述

5.在celery_tasks包下创建sms(名字随意)包,在新创建的sms包内创建tasks.py(名字固定)文件。
(@app.task是在main.py中创建的对象,这里进行调用;
SmsUtil().send_message()是在上片博客中utils工具包下的SendMessage文件中的类,这里进行导入调用,传入用户手机号和验证码,2是设定的有效期两分钟)
在这里插入图片描述
6.在终端启动celery服务。

cd 总工程目录下
celery -A celery_tasks.main worker -l info

在这里插入图片描述
如图所示启动成功。

7.在前面子应用下的views.py文件中找到发送短信的逻辑视图,
调用刚配置好的发短信任务。
在这里插入图片描述
8.在新的终端中启动django服务,前面开启celery服务的终端不能关。

python manage.py runserver 

9.启动前端页面服务器。

python -m http.server 8080

四,进行注册。

在这里插入图片描述
手机收到验证码,延迟在五秒钟左右,前端页面计时器实现实时跳转。

五,查看数据库,发现注册成功。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值