Python-Django-Celery异步配置发送短信介绍

Celery完成发送短信

1-在meiduo/meiduo_mall下创建celery_tasks用于保存celery异步任务。


2-在celery_tasks目录下创建config.py文件,用于保存celery的配置信息

    # celery服务器的配置
    # 指定谁加入cerery的任务队列
    # 注意不是borker  14是默认端口
    broker_url = "redis://127.0.0.1/14"

3-在celery_tasks目录下创建main.py文件,用于作为celery的启动文件

    # celery服务器的入口

    from celery import Celery

    # 为celery使用django配置文件进行设置
    import os
    if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'meiduo_all.settings.dev'

    # 创建celery的一个客户端实例, 并起别名
    celery_app = Celery('meiduo')
    # 加载celery的配置
    celery_app.config_from_object('celery_tasks.config')

    # 自动注册异步的任务 -- celery会自动的寻找封装异步任务的包里面的tasks.py文件
    # 不可以这样指定异步任务:celery_tasks.sms.tasks
    # 就是告知celery_app去哪里找异步任务

    celery_app.autodiscover_tasks(['celery_tasks.sms',"以后可以加新的应用,比如邮件"])


4-将提供的发送短信的云通讯SDK放到celery_tasks/sms/目录下。 


5-在celery_tasks/sms/目录下创建tasks.py文件,用于保存发送短信的异步任务
from celery_tasks.sms.yuntongxun.sms import CCP
from . import contents
from celery_tasks.main import celery_app

# 异步的去发送短信的任务
# 使用celery_app装饰器来装饰send_sms_code
@celery_app.task(name='send_sms_code')

def send_sms_code(mobile, sms_code):

CCP().send_template_sms(mobile,[sms_code,contents.SMS_CODE_REDIS_EXPIRES//60],contents.SEND_SMS_TEMPLATE_ID)

6-后端视图的代码修改--利用回掉函数--delay方法

# 发送短信验证码--交给异步celery去做
# / 5.0----// 5
# sms_code_expires = str(contents.SMS_CODE_REDIS_EXPIRES // 60)
# CCP().send_template_sms(mobile, [sms_code, sms_code_expires], contents.SEND_SMS_TEMPLATE_ID)
# 利用回掉函数的思想,将异步的任务发布到broker任务列表中
# 使用delay函数就可以
# sms_code_expires = str(contents.SMS_CODE_REDIS_EXPIRES // 60)
# temp_id = contents.SEND_SMS_TEMPLATE_ID
# datas = [sms_code, sms_code_expires]
send_sms_code.delay(mobile, sms_code)




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值