一、在项目虚拟环境中安装celery和redis
二、在项目目录下创建celery_tasks包,并在其下新建tasks.py
在tasks.py中添加如下代码:
from celery import Celery
from django.conf import settings
from django.core.mail import send_mail
# django环境初始化
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dailyfresh.settings')
django.setup()
# 创建一个celery类的实例对象
app = Celery('celery_tasks.tasks', broker='redis://127.0.0.1:6379/8')
@app.task
def send_email_task(username, email, token):
subject = '天天生鲜欢迎信息'
message = ''
sender = settings.EMAIL_FROM
receiver = [email]
html_message = '<h1>欢迎{0}注册天天生鲜会员</h1>激活账户请点击下方链接:<br/><a href="http://127.0.0.1/user/active/{1}">http://127.0.0.1/user/active/{2}</a>'.format(
username, token, token)
send_mail(subject, message, sender, receiver, html_message=html_message)
三、在视图函数中添加celery任务
from django.shortcuts import render
from celery_tasks.tasks import send_email_task
def register(request):
# 部分代码省略
send_email_task.delay(username, email, token)
return render(request, 'index.html')
四、启动celery
1、进入项目虚拟环境中,拷贝一份项目代码到ubuntu桌面,进入项目目录下,输入命令:
celery -A celery_tasks.tasks worker -l info
从上图中可以看到celery任务已经开启了!
接下来去执行一遍视图函数,效果如下图所示,显示已接受到任务,并执行成功: