python使用celery实现异步任务执行的例子


Posted in Python onAugust 28, 2019

使用celery在django项目中实现异步发送短信

在项目的目录下创建celery_tasks用于保存celery异步任务。

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

```broker_url = "redis://127.0.0.1/14"```

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

from celery import Celery
 # 为celery使用django配置文件进行设置

import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
  os.environ['DJANGO_SETTINGS_MODULE'] = 'model.settings.dev'

 # 创建celery应用

app = Celery('model')

 #导入celery配置

app.config_from_object('celery_tasks.config')
 #自动注册celery任务
app.autodiscover_tasks(['celery_tasks.sms'])

在celery_tasks目录下创建sms目录,用于放置发送短信的异步任务相关代码。

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

在celery_tasks/sms/目录下创建tasks.py(这个名字是固定的,非常重要,系统将会自动从这个文件中找任务队列)文件,用于保存发送短信的异步任务

import logging

  from celery_tasks.main import app
  from .yuntongxun.sms import CCP

  logger = logging.getLogger("django")

   #验证码短信模板
  SMS_CODE_TEMP_ID = 1

  @app.task(name='send_sms_code')
    def send_sms_code(mobile, code, expires):

  发送短信验证码
  :param mobile: 手机号
  :param code: 验证码
  :param expires: 有效期
  :return: None


  try:
    ccp = CCP()
    result = ccp.send_template_sms(mobile, [code, expires], SMS_CODE_TEMP_ID)
  except Exception as e:
    logger.error("发送验证码短信[异常][ mobile: %s, message: %s ]" % (mobile, e))
  else:
    if result == 0:
      logger.info("发送验证码短信[正常][ mobile: %s ]" % mobile)
    else:
      logger.warning("发送验证码短信[失败][ mobile: %s ]" % mobile)

在verifications/views.py中改写SMSCodeView视图,使用celery异步任务发送短信

from celery_tasks.sms import tasks as sms_tasks

class SMSCodeView(GenericAPIView):
  ...
    # 发送短信验证码 这是将时间转化为分钟,constants.SMS_CODE_REDIS_EXPIRES 是常量
    sms_code_expires = str(constants.SMS_CODE_REDIS_EXPIRES // 60)

    sms_tasks.send_sms_code.delay(mobile, sms_code, sms_code_expires)

    return Response({"message": "OK"})

以上这篇python使用celery实现异步任务执行的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用tarfile压缩、解压tar归档文件示例
Apr 05 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python随机数random模块使用指南
Sep 09 Python
基于python log取对数详解
Jun 08 Python
python实现合并两个排序的链表
Mar 03 Python
elasticsearch python 查询的两种方法
Aug 04 Python
Python编写带选项的命令行程序方法
Aug 13 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
解决jupyter notebook显示不全出现框框或者乱码问题
Apr 09 Python
Python实现aes加密解密多种方法解析
May 15 Python
Python Gitlab Api 使用方法
Aug 28 #Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 #Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 #Python
Python的垃圾回收机制详解
Aug 28 #Python
Python通过cv2读取多个USB摄像头
Aug 28 #Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 #Python
Django--权限Permissions的例子
Aug 28 #Python
You might like
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
phplot生成图片类用法详解
2015/01/06 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
微信支付开发交易通知实例
2016/07/12 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
Vue实现日历小插件
2019/06/26 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
python中随机函数random用法实例
2015/04/30 Python
python实现Adapter模式实例代码
2018/02/09 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
2019/09/23 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
python GUI计算器的实现
2020/10/09 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书