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

原文地址:https://www.cnblogs.com/mxsf/p/10296471.html

时间: 2024-10-09 07:30:19

Celery异步发送邮件的相关文章

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

通过提示说明Celery 4.x 需要Django1.11或者后面的版本,可是使用的是django1.8.2的版本,最先以为是自己什么地方配置出错了,找了很久也没有找到. 任务队列启动没错,任务处理启动也没问题,打开输入地址就报错. 最终看到使用的是Celery4.3.0,然后改成4.1.1版本就可以使用了. 具体问题没找到,应该是新版本加入了一些东西,以后再来研究. 原文地址:https://www.cnblogs.com/-666/p/11279843.html

【demo】自己写的一个 SpringMail 异步发送邮件的demo。 javamail 邮件异步发送

原文:[demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 源代码下载地址:http://www.zuidaima.com/share/1550463483120640.htm [demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 (注意 配置里面的账号跟发件人账号要一致) 1. 请各位在跑单元测试的时候,在 spring-mail.xml 文件中配置自己的邮箱账号和密码 (我已经注释掉了)

python—Celery异步分布式

Celery异步分布式 Celery是一个python开发的异步分布式任务调度模块 Celery本身并不提供消息服务,使用第三方服务,也就是borker来传递任务,目前支持rebbimq,redis, 数据库等 使用redis连接url的格式为: redis://:[email protected]:port/db_number 例如: BROKER_URL = 'redis://localhost:6379/0' 1)huang.py from celery import Celery bro

Django使用Celery异步任务队列

1  Celery简介 Celery是异步任务队列,可以独立于主进程运行,在主进程退出后,也不影响队列中的任务执行. 任务执行异常退出,重新启动后,会继续执行队列中的其他任务,同时可以缓存停止期间接收的工作任务,这个功能依赖于消息队列(MQ.Redis). 1.1  Celery原理 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成. 消息中间件:Celery本身不提供消息服务,但

Celery异步任务

在实际开发过程中,会遇到很多耗时操作,这时如果不采取措施,程序会进入到阻塞状态,直到耗时任务完成,为了保证整个项目的流畅性,通常会对这些耗时任务进行异步操作,具体步骤如下: 1.创建celery_tasks用于保存celery异步任务 2.在celery_tasks目录下创建config.py文件,用于保存celery的配置信息 broker_url = "redis://127.0.0.1/14" 3.在celery_tasks目录下创建main.py文件,用于作为celery的启动

django、celery异步发邮件

django.celery异步发邮件 django自带的send_mail发邮件功能执行发邮件功能会因为网络的原因造成花费的时间过长,为了解决这个问题,可以用celery + redis代替 安装包: pip install celery pip install redis 在django的根目录下新建celery_tasks文件夹,在该文件夹下新建tasks.py: 1 from celery import Celery 2 from django.conf import settings 3

pythonWeb框架flask中使用blinker信号机制解耦业务代码解决ImportError: cannot import name &#39;app&#39;,以异步发送邮件为例

百度了大半天,不知道怎么搞,直到学习了blinker才想到解决办法,因为之前写java都是文件分开的, 所以发送邮件业务代码也放到view里面,但是异步线程需要使用app,蛋疼的是其他模块不能从app.py导入任何变量: 即: app.py是主文件,view.py是业务文件, 我需要在view中使用app中的变量,怎么办,百度了很多,没有找到方法 这里可以用信号实现,先记录一下: python3内置了blinker,可以直接使用,首先在view里定义信号: 然后在app.py里面连接需要使用的函

平台项目 ~ celery 异步之异步处理功能

一 简介:今天来聊聊celery两大功能之一的异步处理 二  标准流程: 1 建立 config 文件           class Config:             ENABLE_UTC = False             CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/5'             BROKER_URL = 'redis://127.0.0.1:6379/6'            注意 1 所有参数都必须大写,并且

celery异步执行任务框架

Celery 官方 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html Celery 官方文档中文版:http://docs.jinkan.org/docs/celery/ Celery异步任务框架 """ 1)可以不依赖任何服务器,通过自身命令,启动服务(内部支持socket) 2)celery服务为为其他项目服务提