zoukankan      html  css  js  c++  java
  • django+redis+celery异步发送邮件

    前景提要:参考并学习天天生鲜项目中异步发送邮件、以及其他网上博客内容解决

    相关库的版本号:

    kombu==4.6.8

    redis==3.5.2

    celery==4.4.2

    Django==3.0.6

    步骤:

    1、安装并启动redis

    2、安装celery、redis库

    3、编写任务代码:

    注意:默认配置设置、django环境初始化,否则后面运行会报错

    4、视图中导入并调用异步任务:

     5、在项目目录下,执行:

    celery -A celery_tasks.tasks worker -l debug --pool=solo

    启动后的结果如下:

    注意:不加--pool=solo参数会报如下错误(参照网上解决方式,暂不知道原因):

     6、启动django项目:django manager.py runserver,页面上进行注册账号操作

    7、操作完成后,redis中会新增两个键(未执行的任务):

     8、当任务执行完成后,上一步中的键移除,并在结果库中保存对应的执行结果(在实例化Celery对象的时候,由backend参数指定):

     收到注册激活邮件

    -------------------------------------------------------------------------------------------

    当一个py文件中包含多个任务时,由于之前不清楚装饰器@app.task中name参数的含义,将所有任务的name都设置成了相同的,结果酿成了大错:

    当触发执行其中一个不需要参数的任务时,却报错另一个需要参数的任务缺少参数:

    执行的是下图不需要参数的任务:

     报错如下:

     最后将任务的name设置成不同的值,无报错

  • 相关阅读:
    Cocos-js(html5) 学习
    Cocos-html5 初识
    quick cocos2d-x Xcode下省去clean,让修改的脚本生效
    iOS 淘宝买 开发者证书 进行真机调试
    iOS NSString的学习熟悉
    quick-cocos2d-x 加载进度条的学习
    HTML 学习之HTML语言嵌入JavaScript
    CCArray的使用(Quick-cocos2d-x)
    quick-cocos2d-x 精灵使用、动作等等的学习
    Spring(二) Mini版Spring的实现
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13031559.html
Copyright © 2011-2022 走看看