安装如下依赖库

pip install Celery
pip install django-celery
pip install django-redis

还要安装本地的Redis服务

settings.py 文件中添加如下代码(需要163邮箱开通SMTP服务)

import djcelery
djcelery.setup_loader() BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379' EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'your mail@163.com'
EMAIL_HOST_PASSWORD = 'your password'
EMAIL_FROM = '<your mail@163.com>'
EMAIL_TO = 'send to@xxx.com' INSTALLED_APPS = (
      
    ...
    'djcelery'
)
 

与settings.py同级目录下的__init__.py添加如下代码

import celery
from .celery import app as celery_app

在settings.py同级目录下创建celery.py,并添加如下代码

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')
app = Celery('myshop')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

在你的app目录下创建tasks.py,并添加你需要执行的任务(在这里是发送邮件)

# coding: utf-8
from celery import task
from django.core.mail import send_mail
from .models import Order
from myshop import settings @task()
def send_email():
"""
Task to send an e-mail notification when an order is successfully created.
"""
title = 'Django发送邮件'
message = ('本邮件为程序所发,请忽视').decode('utf-8')
mail_sent = send_mail(title, message, settings.EMAIL_FROM, [settings.EMAIL_TO])
return mail_sent

在你的view.py中调用,执行该任务

from .tasks import order_createddef order(request):

  .....  
  # launch asynchronous task
  send_email.delay(order.id)
  .....

Django+Celery+Redis实现异步任务(发送邮件)的更多相关文章

  1. Django+Celery+xadmin实现异步任务和定时任务

    Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...

  2. django celery redis 定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  3. Celery+redis实现异步

    目录 Celery+redis实现异步 安装redis 安装celery-with-redis 添加celery相关配置 创建异步运行任务tasks.py 启动 Celery+redis实现异步 安装 ...

  4. django+celery+redis实现运行定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  5. django+celery+redis环境搭建

    初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...

  6. Django+Celery+redis kombu.exceptions.EncodeError:Object of type is not JSON serializable报错

    在本文中例子中遇到问题的各种开发版本如下: Python3.6.8 Django==2.2 celery==4.4.0 kombu==4.6.7 redis==3.3.0 大概的报错如下截图: 是在开 ...

  7. 使用django + celery + redis 异步发送邮件

    参考:http://blog.csdn.net/Ricky110/article/details/77205291 环境: centos7  +  python3.6.1 + django2.0.1  ...

  8. Django Celery Redis 异步执行任务demo实例

    一.windows中安装redis 安装过程见 <在windows x64上部署使用Redis> 二.环境准备 requirements.txt Django==1.10.5 celery ...

  9. django celery的分布式异步之路(一) 起步

    如果你看完本文还有兴趣的话,可以看看进阶篇:http://www.cnblogs.com/kangoroo/p/7300433.html 设想你遇到如下场景: 1)高并发 2)请求的执行相当消耗机器资 ...

随机推荐

  1. 成都优步uber司机第三组奖励政策

    今天成都优步又推出了优步司机第三组,第一二组的奖励大家都晓得,但是第三组的奖励怎么样呢?还是先看看官方给出的消息. 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册 ...

  2. java 类装饰

    package TestIo; public class Test8 { public static void main(String[] args) { System.out.println(&qu ...

  3. python版protobuf 安装

    转自:http://www.tuicool.com/articles/VfQfM3 1. 下载protobuf源代码(当前最新版本为:2.5.0) #cd /opt #wget https://pro ...

  4. redis 问题记录

    摘抄来自:https://zhuoroger.github.io/ 1.slowlog和排队延时 slowlog是排查性能问题关键监控指标.它是记录Redis queries运行时间超时特定阀值的系统 ...

  5. ORA-15032、ORA-15071错误处理

    遇到一下错误 ERROR at line 1: ORA-15032: not all alterations performed ORA-15071: ASM disk "NOCR_0002 ...

  6. JS dataTables

    原文地址: http://www.cnblogs.com/haogj/archive/2011/03/04/1971328.html   数据来源有四种: 1. 网页DOM对象 $(document) ...

  7. git 操作几个命令

     git clone ssh://lijianfeng@192.168.1.246:29418/GMGameSDK压栈:git stash查状态:git status切换到要修改的提交:git reb ...

  8. 05-JVM对象探秘

    一.对象的内存布局         以Hotspot虚拟机为例,对象在内存中的结构可以分为三部分:对象头(header).实例数据(instance data).对齐填充(padding). 1.1. ...

  9. Linux命令应用大词典-第18章 磁盘分区

    18.1 fdisk:分区表管理 18.2 parted:分区维护程序 18.3 cfdisk:基于磁盘进行分区操作 18.4 partx:告诉内核关于磁盘上分区的号码 18.5 sfdisk:用于L ...

  10. 【progress】 进度条组件说明

    progress 进度条组件 原型: <progress percent="[Float(0-100)]" show-info="[Boolean]" b ...