安装两个python包:

pip install celery==3.1.25

pip install django-celery==3.1.17

在配置文件settings.py中做如下配置:

a)    首先注册应用djcelery并做如下配置。

  1.          import djcelery
  1.          djcelery.setup_loader()
  1.      BROKER_URL = 'redis://127.0.0.1:6379/2'

b)    生成djcelery所依赖的表。

python manage.py migrate

c)    在应用目录下新建一个tasks.py文件。

  1. # 写celery任务函数
  2. from celery import task
  3. from django.core.mail import send_mail
  4. from django.conf import settings
  5. import time
  6.  
  7. @task
  8. def send_register_success_mail(username, password, email):
  9. message = '<h1>欢迎您成为注册会员</h1>请记好您的信息:<br/>用户名:' + username + '<br/>密码:' + password
  10. send_mail('欢迎信息', '', settings.EMAIL_FROM, [email], html_message=message)
  11. time.sleep(5)

d)    任务函数中将发送邮件任务加入任务队列

  1. # /user/register_handle/
  2. def register_handle(request):
  3. '''实现用户注册'''
  4. # 1.接收用户的注册信息
  5. username = request.POST.get('user_name')
  6. password = request.POST.get('pwd')
  7. email = request.POST.get('email')
  8. # 2.保存进数据库
  9. Passport.objects.add_one_passport(username=username, password=password, email=email)
  10. # 3.给用户注册邮箱发邮件
  11. # message = '<h1>欢迎您成为注册会员</h1>请记好您的信息:<br/>用户名:'+username+'<br/>密码:'+password
  12. # send_mail('欢迎信息', '', settings.EMAIL_FROM, [email], html_message=message)
  13. # time.sleep(5)
  14. # 将任务放入任务队列
  15. send_register_success_mail.delay(username=username, password=password, email=email)
  16. # 3.跳转到登录页面 /user/login/
  17. return redirect('/user/login/')

启动worker进行

python manage.py celery worker --loglevel=info

异步任务--celery发送邮件的更多相关文章

  1. 15 Django之Celery发送邮件

    异步任务--celery发送邮件 安装两个python包: pip install celery==3.1.25 pip install django-celery==3.2.1 pip instal ...

  2. [django]python异步神器-celery

    python异步神器celery https://segmentfault.com/a/1190000007780963

  3. Django+Celery+Redis实现异步任务(发送邮件)

    安装如下依赖库 pip install Celery pip install django-celery pip install django-redis 还要安装本地的Redis服务 setting ...

  4. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  5. 异步测试celery

    django异步请求: Django从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 -- http handling(request解析) -- url mappi ...

  6. Python开发异步任务Celery的使用教程!

    1. 生产者消费者设计模式 最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联.我们称这一解耦方式为:生产者消费者设计模式 2.中间人broker 示例:此处演示Redis ...

  7. 分布式异步框架celery

    Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...

  8. django项目学习之异步框架celery

    最近用django一个网上商城项目的时候用两个扩展,感觉还不错,所以在此记录一下. 首先来说下celery,celery是一个处理异步任务的框架,需要下载celery包,一般在项目需要进行耗时操作的时 ...

  9. Python—异步任务队列Celery简单使用

    一.Celery简介 Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具.它是一个任务队列,专注于实时处理,同时还支持任务调度. 中间人boker: ...

随机推荐

  1. 笔记1 linux 多线程 互斥锁

    //mutex lock #include<stdio.h> #include<unistd.h> #include<pthread.h> struct test ...

  2. Linux入门_2-基础命令

    Linux入门-基础命令 目录 日期命令date 修改时区 日历命令cal 关机启动命令halt,reboot,poweroff whoami.who.who am i.w screen ...

  3. java基础知识1--String常用方法总结

    主要涉及String常用的方法. package collection; import java.lang.reflect.Array; import java.util.Arrays; /** * ...

  4. Axios源码阅读笔记#1 默认配置项

    Promise based HTTP client for the browser and node.js 这是 Axios 的定义,Axios 是基于 Promise,用于HTTP客户端--浏览器和 ...

  5. linux文件权限解析(摘)

    用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建 ...

  6. 【京东账户】——Mysql/PHP/Ajax爬坑之用户登录

    一.引言 实现京东的账户项目,功能模块之一,用户登录.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记录 创建库:jd 创建表:登录表 添加三条记录 CREATE ...

  7. 关于MySQL 事务,视图,索引,数据库备份,恢复

      /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(1 ...

  8. web版的tty

      1.wetty Wetty是使用Node.js和websockets开发的一个开源`Web-based SSH` 2.环境配置 2.1.配置epel源 [epel] name=epel baseu ...

  9. SGU180(树状数组,逆序对,离散)

    Inversions time limit per test: 0.25 sec. memory limit per test: 4096 KB input: standard output: sta ...

  10. POJ(1195)(单点修改,区间查询)(二维)

    题目大意 给定一个N*N的网格,刚开始每个网格的值都是0,接下来会对这些网格进行操作,有一下两种操作: 1."X Y A"对网格C[x][y]增加A 2."L B R T ...