Celery异步发送邮件

Posted mxsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Celery异步发送邮件相关的知识,希望对你有一定的参考价值。

一、编写 tasks.py

在项目根目录下创建包和py文件

技术分享图片

发送邮件代码如下

 1 from django.core.mail import send_mail
 2 from django.conf import settings
 3 from celery import Celery
 4 
 5 
 6 # 在任务处理者一端加这几句
 7 import os
 8 import django
 9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dailyfresh.settings")
10 django.setup()
11 
12 app = Celery(celery_tasks.tasks, broker=redis://127.0.0.1:6379/8)
13 
14 
15 @app.task
16 def send_register_active_email(to_email, username, token):
17     """发送激活邮件"""
18     subject = 天天生鲜欢迎信息
19     message = ‘‘
20     sender = settings.EMAIL_FROM
21     receiver = [to_email]
22     html_message = <h1>%s, 欢迎您成为天天生鲜注册会员</h1>请点击下面链接激活您的账户<br/><a href="http://127.0.0.1:8000/user/active/%s">http://127.0.0.1:8000/user/active/%s</a> % (username, token, token)
23 
24     send_mail(subject, message, sender, receiver, html_message=html_message)

二、在 views.py 调用

导入模块

技术分享图片

调用

技术分享图片

三、启动服务

# 启动 Redis
redis-server

# 启动 Celery (先进入到项目根目录下)
celery -A celery_taskes.tasks worker -l info

 

以上是关于Celery异步发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

Flask实战第67天:Flask+Celery实现邮件和短信异步发送

django中使用celery异步发送邮件问题

django+celery实现异步任务

使用 Redis、Celery 设置 Django 以通过 Gmail 发送电子邮件

Django项目中使用celery做异步任务

异步任务神器 Celery 简明笔记