栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Celery异步发送短信验证码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Celery异步发送短信验证码

1.在django项目主应用下创建celery.py文件,配置以下内容:
# celery.py文件
import os
from celery import Celery
from django.conf import settings

# 为celery配置环境变量,识别和加载django的配置文件
# 因为worker是脱离django启动的,且依赖其配置
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mdpro.settings') # 主应用

# 创建celery实例
app = Celery('mdpro')

# 指定celery消息队列的配置
app.config_from_object('mdpro.config', namespace='CELERY')
#也可以app.conf.update(BROKER_URL="XXX")

# 从所有的django-app中加载任务
app.autodiscover_tasks(settings.INSTALLED_APPS) 
2.在django项目主应用mdpro下创建config.py文件,配置以下内容:
# 消息中间人broker设置
broker_url = 'redis://:@127.0.0.1:6379/15'  #不能写localhost
# 结果存储设置
result_backend = 'redis://:@127.0.0.1:6379/14'
3.在django项目其他应用下,这里是users,创建tasks.py
from django.conf import settings
from ronglian_sms_sdk import SmsSDK
from rest_framework.utils import json


# 发送短信验证码
def send_message(mobile, sms_code, expire):
    # 实例化sdk
    sdk = SmsSDK(settings.ACCID, settings.AUTHTOKEN, settings.APPID)
    # 组织数据 tid 是容联云的一个短信模板
    tid = "1"
    # 发送手机号
    mobile = "%s" % mobile
    # 短信验证码和过期时间
    datas = ("%s" % sms_code, "%s" % expire)
    # 发送短信并接受响应
    res = sdk.sendMessage(tid=tid, mobile=mobile, datas=datas)
    # 解析响应
    print("发送短信的响应:", res, type(res))
    res_dirt = json.loads(res)
    return res_dirt
4.视图中发送异步任务
# 发送短信
class SmsApiview(APIView):
    def post(self, request):
        # 获取前端数据
        mobile = request.data.get("mobile")
        uuid = request.data.get('uuid')

        # 生成短信验证码  转化成字符串形式
        sms_code = "%d" % random.randint(10000, 99999)

        # 存储短信验证码
        redis_cli = redis.Redis(password='password')
        redis_cli.set(uuid, sms_code, ex=300)

        # 请求容联云发送短信
        res = send_message(mobile, sms_code, expire=5)
        print("aaa", res)

        return Response({'msg': '信息发送成功,请注意查收', 'code': 200})
5.启动celery

在终端中输入:celery -A p6 worker -l info -P eventlet

6.启动vue项目

npm run serve

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号