异步任务--celery发送邮件

安装两个python包:
pip install celery==3.1.25
pip install django-celery==3.1.17
在配置文件settings.py中做如下配置:
a) 首先注册应用djcelery并做如下配置。
import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/2'
b) 生成djcelery所依赖的表。
python manage.py migrate
c) 在应用目录下新建一个tasks.py文件。
# 写celery任务函数
from celery import task
from django.core.mail import send_mail
from django.conf import settings
import time @task
def send_register_success_mail(username, password, email):
message = '<h1>欢迎您成为注册会员</h1>请记好您的信息:<br/>用户名:' + username + '<br/>密码:' + password
send_mail('欢迎信息', '', settings.EMAIL_FROM, [email], html_message=message)
time.sleep(5)
d) 任务函数中将发送邮件任务加入任务队列
# /user/register_handle/
def register_handle(request):
'''实现用户注册'''
# 1.接收用户的注册信息
username = request.POST.get('user_name')
password = request.POST.get('pwd')
email = request.POST.get('email')
# 2.保存进数据库
Passport.objects.add_one_passport(username=username, password=password, email=email)
# 3.给用户注册邮箱发邮件
# message = '<h1>欢迎您成为注册会员</h1>请记好您的信息:<br/>用户名:'+username+'<br/>密码:'+password
# send_mail('欢迎信息', '', settings.EMAIL_FROM, [email], html_message=message)
# time.sleep(5)
# 将任务放入任务队列
send_register_success_mail.delay(username=username, password=password, email=email)
# 3.跳转到登录页面 /user/login/
return redirect('/user/login/')
启动worker进行
python manage.py celery worker --loglevel=info
异步任务--celery发送邮件的更多相关文章
- 15 Django之Celery发送邮件
异步任务--celery发送邮件 安装两个python包: pip install celery==3.1.25 pip install django-celery==3.2.1 pip instal ...
- [django]python异步神器-celery
python异步神器celery https://segmentfault.com/a/1190000007780963
- Django+Celery+Redis实现异步任务(发送邮件)
安装如下依赖库 pip install Celery pip install django-celery pip install django-redis 还要安装本地的Redis服务 setting ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 异步测试celery
django异步请求: Django从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 -- http handling(request解析) -- url mappi ...
- Python开发异步任务Celery的使用教程!
1. 生产者消费者设计模式 最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联.我们称这一解耦方式为:生产者消费者设计模式 2.中间人broker 示例:此处演示Redis ...
- 分布式异步框架celery
Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...
- django项目学习之异步框架celery
最近用django一个网上商城项目的时候用两个扩展,感觉还不错,所以在此记录一下. 首先来说下celery,celery是一个处理异步任务的框架,需要下载celery包,一般在项目需要进行耗时操作的时 ...
- Python—异步任务队列Celery简单使用
一.Celery简介 Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具.它是一个任务队列,专注于实时处理,同时还支持任务调度. 中间人boker: ...
随机推荐
- 201521123018 《Java程序设计》第13周学习总结
1. 本章学习总结 2. 书面作业 一.1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 返回时间 ...
- 201521123079《java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 1.实现多线程的方式: 方式一:继承Thread类 a.自定义类继承Thread类 b.在自定义类中重写ru ...
- 201521123028 《Java程序设计》第11周学习总结
1. 本周学习总结 关于互斥同步访问 synchronized关键字 -wait.notify和notifyAll Lock和Condition方法 -condition.await() //类似ob ...
- Linux系统文件与目录权限管理
Linux文件目录权限管理 一.Linux文件属性及权限 1.Linux文件及目录权限及属性说明 (1)权限及属性说明 (2)文件权限说明 三种权限说明:r 读 read w 写 write x ...
- 对IO流的操作(文件大小,拷贝,移动,删除)
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.Fi ...
- 03_Ext_Viewport_Window_Dialog
Viewport Viewport 代表整个浏览器窗口,直接渲染到document.body节点,取代页面中的所有内容.一般作为应用程序主界面. 随着浏览器显示区域的大小自动改变,一个页面中只能有一个 ...
- oracle安装时,条件检查不通过解决办法
1.开始菜单→ 运行:输入regedit,打开注册表 2.依次点开HKEY_LOCAL_MACHINE>>SYSTEM>>CurrenControlSet>>ser ...
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
前面我们安装部署了 Rex-Ray,并且成功配置 VirtualBox backend,今天演示如何创建和使用 Rex-Ray volume. 在 docker1 或 docker2 上执行如下命令创 ...
- hdu1512 Monkey King(左偏树 + 并查集)
Once in a forest, there lived N aggressive monkeys. At the beginning, they each does things in its o ...
- R语言包下载(转载)
http://blog.csdn.net/hongjinlongno1/article/details/53130893 包含几乎所有包,很方便