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实例之wxpython中Frame使用方法
Jun 09 Python
Python3基础之输入和输出实例分析
Aug 18 Python
Python制作CSDN免积分下载器
Mar 10 Python
python3中的md5加密实例
May 29 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
Nov 12 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 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实现验证码功能
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
javascript cookies操作集合
2010/04/12 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python的Jenkins接口调用方式
2020/05/12 Python
python时间time模块处理大全
2020/10/25 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
大学同学会活动方案
2014/08/20 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
暑期工社会实践报告
2015/07/13 职场文书
医院感染管理制度
2015/08/05 职场文书