• 1.Celery介绍

    • 点击查看Celery参考文档
    • Celery是一个功能完备即插即用的任务队列
    • Celery适用异步处理问题,比如发送邮件、文件上传,图像处理等等比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验
  • 2.Celery特点:

    • 简单,易于使用和维护,有丰富的文档
    • 高效,单个Celery进程每分钟可以处理数百万个任务
    • 灵活,Celery中几乎每个部分都可以自定义扩展
    • Celery非常易于集成到一些web开发框架中
  • 3.安装Celery

    # 进入虚拟环境
    pip install celery
  • 4.Celery组成结构

    • 任务队列是一种跨线程、跨机器工作的一种机制
    • 任务队列中包含任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理
    • Celery通过消息进行通信,通常使用一个叫broker(中间人)来协client(任务的发出者)和worker(任务的处理者)
    • client发出消息到队列中,broker将队列中的信息派发给worker来处理
    • 一个Celery系统可以包含很多的worker和broker,可增强横向扩展性和高可用性能。
    • Celery组成结构是生产者消费者模型的一种体现

    • Celery使用

      1.创建Celery异步任务文件

    • 2.创建应用对象/客户端/client

      • 应用对象内部封装要异步执行的任务
      • Celery():
        • 参数1是异步任务路径
        • 参数2是指定的broker
          • redis://密码@redis的ip:端口/数据库
          • redis://192.168.243.191:6379/4
        • 返回客户端应用对象app
      • send_active_email():内部封装激活邮件内容,并用装饰器@app.task注册
      • 调用python的send_mail()将激活邮件发送出去

          from celery import Celeryfrom django.core.mail import send_mailfrom django.conf import settings # 创建celery应用对象 app = Celery('celery_tasks.tasks', broker='redis://192.168.243.191:6379/4') 
      • # 中间人用redis,很多支持中间人broker的
      •  @app.task def send_active_email(to_email, user_name, token): #在视图view中调用tasks的send_active_email.delay()方法时,传的参数不能时obj
         """发送激活邮件"""
        •  .......
    • 4.创建worker

      • 示例:此处演示把worker创建到ubuntu虚拟机中,ubuntu作为Celery服务器
      • Celery服务器创建worker步骤

        • 1.把项目代码拷贝一份到ubuntu虚拟机中

        • 并在celery_tasks/tasks.py文件顶部添加以下代码

           作用:让Celery的worker能够加载Django配置环境

           import os 

           os.environ["DJANGO_SETTINGS_MODULE"] = "dailyfresh.settings"

            # 放到Celery服务器上时添加的代码             import django             django.setup()

  2.终端创建worker, 需要在虚拟环境下运行

    celery -A celery_tasks.tasks worker -l info
 

转载于:https://www.cnblogs.com/yuanzhengchi/p/8685761.html

Django-Celery异步发送激活邮件,以及注意点相关推荐

  1. django celery 异步发送邮箱

    django + celery + redis 异步发送QQ邮箱 django一般的代码逻辑都需要一步一步执行,这样大大的占用了I/O资源,用户也得不到完美的体验,django-celery可以灵活的 ...

  2. 使用Springboot异步发送模板邮件完成注册功能

    目录 1.使用Springboot发送模板邮件并测试 1.添加依赖 2.配置application.properties 3.编写HTML邮件模板 4.编写发送邮件工具类 5.测试 2.在用户使用邮箱 ...

  3. Java实现注册时发送激活邮件验证

    在很多网站注册的时候,为了验证用户信息的真实合法,往往需要验证用户所填邮件的准确性.形式为:用户注册时填写邮箱,注册完成后,网站会向用户所填邮箱发送一封激活邮件,用户点击激活邮件中的链接后,方可完成注 ...

  4. java 发送激活邮件 以qq邮箱为例

    java发送激活邮件 以qq邮箱为例 1.首先发送者邮箱需要开启服务 登录qq邮箱,选择设置--账号,开启以上两个服务.会获得相应的两个授权码 2.以下代码为发送邮件代码 package com.em ...

  5. java实现通过QQ邮箱发送激活邮件 springBoot

    用户邮件激活 通过QQ邮箱发送激活邮件 soringBoot 本文主要介绍了使用java 调用邮箱发送邮件的功能 首先新建一个springboot项目 pom依赖如下 <parent>&l ...

  6. 用户注册发送激活邮件(上)

    最近跟一位前辈学习了一个简单的业务模块(用户注册时的邮箱激活),整理了一份简单的资料与大家分享,在此感谢边老师指导和广大博友们的分享,才有此篇. 由于本人实战开发经验不是很足,在下文中知识点.工程图和 ...

  7. 使用容联云Celery异步发送短信验证码

    文章目录 Celery/容联云 安装与命令 安装 celery启动命令 一.Celery 1.配置Celery 2.创建任务文件 二.容联云 1. 配置容联云 settings.py 2. 使用Sms ...

  8. django重置密码发送html邮件,Django实现发送邮件找回密码功能

    在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...

  9. django重置密码发送html邮件,django 开发忘记密码通过邮箱找回功能示例

    一.流程分析: 1.点击忘记密码====>forget.html页面,输入邮箱和验证码,发送验证链接网址的邮件====>发送成功,跳到send_success.html提示 2.到邮箱里找 ...

最新文章

  1. 转 如何利用客户端缓存对网站进行优化?
  2. ViewPager,TabLayout,Fragment实现tabs滑动
  3. 英特尔高级副总裁:收购McAfee是为股东考虑
  4. 大型应用软件产品设计方法
  5. apc php7,深入解析php之apc
  6. GIt 从入门到放弃
  7. maven项目的pom文件中常用的简单的标签理解
  8. IDA 7.0在Mojava更新后打不开的问题
  9. 计算机的3d软件家庭版,3DOne家庭版 64位
  10. ACM新手入门之杭电150题使用指南及C语言学习推荐
  11. Clean Code(代码整洁之道)-有意义的命名
  12. 数据寻址——偏移寻址
  13. 新版阿里云服务器的安全组配置
  14. Java 金额转换帮助类(元转分)
  15. 80题题目+AC代码汇总 ~ 南阳 NYOJ
  16. (转帖) cglib和jdk的区别
  17. mathtype中如何添加一个圆圈中间一个减号的符号
  18. 只想听歌曲的高潮部分?让我用python来教你做个音乐高潮提取器!
  19. 一个测试工程师应具备那些素质和技能?
  20. android 编译器indel,Overview of the HbbTV compliant browser upgrade on Android based DTV platform

热门文章

  1. MySQL多实例实现半同步复制
  2. 远程接入-天翼5系统让ERP穿越时空!
  3. 数据库服务器 之 Postgresql备份和恢复------SQL转储篇
  4. 乙肝的传播途径是否只有四种?
  5. Cannot resolve method ‘call(java.lang.String, org.apache.flink.table.api.ApiExpression)‘
  6. flink更新flink-shaded-hadoop-3-uber
  7. System memory 466092032 must be at least
  8. 主体ubuntu16.04,宿体virtualbox下的windows7的共享文件夹设置
  9. 怎么检测计算机硬件好坏,驱动人生怎么看电脑硬件 硬件检测教程介绍
  10. 中国人工智能产业发展联盟成立 360任副理事长单位