*1.编写代码,注意下方的app是具体的celery对象,在方法之前所加装饰器一定要对应
from celery import Celery, app
from django.core.mail import send_mail
from dailyfresh.settings import EMAIL_FROM
app = Celery('celery_tasks.tasks',broker='redis://127.0.0.1:6379/8')
@app.task
def send_RegisterActive_email(to_email,username,token):
subject = '天天生鲜欢迎信息'
message = ''
sender = EMAIL_FROM
receiver = [to_email]
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)
send_mail(subject, message, sender, receiver, html_message=html_message)
说明:
1.这里的Celery对象只穿了broker参数制定了任务的中间队列,参数backend是存储数据的地方,默认不设置.
2.broker表明本地端口,使用了redis8号数据库,还有0-16均可使用.
2.传参
send_RegisterActive_email.delay(email,username,token)
3.终端命令开启
可以在本机或者其他机器开启(这里使用了本机)
项目目录下方:
celery -A celery_tasks.tasks worker -l info
#注意, -l表明信息等级是info级别
说明
1.要注意redis3.0.1版本与celery4.0+版本不兼容;redis升级命令: pip install -U redis; redis回退命令:pip install redis==2.10.6
2.出现错误 " bash:celery command not found",可能由于celery目录不对,使用 which celery查看路径,父级目录是bin目录应该都不错,反之可以建立软连接 sudo ln -s /…你的celery路径…/celery
3.下图就是成功状态
4.参考文章:
参考链接
作者好像是专业的,有些看不懂55555555