zoukankan      html  css  js  c++  java
  • 异步任务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

  • 相关阅读:
    我的Git教程 之 初始化本地库
    再学Java 之 Integer 包装类缓存
    再学Java 之 private、protected、public和default的作用域
    再学Java 之 形参个数可变函数
    再学Java 之 foreach循环
    解决MySQL中文乱码问题
    再学Java 之 解决No enclosing instance of type * is accessible
    从一个例子学习 instanceof 和 getclass 的区别
    如何单独启动wamp 中自带的MySQL
    网络游戏程序员须知 UDP vs TCP(转)
  • 原文地址:https://www.cnblogs.com/maxiaohei/p/7738064.html
Copyright © 2011-2022 走看看