最近学习任务队列Celery中,跟着视频写代码时候,出现如题错误,最终在不懈的百度,调试中终于找到解决办法。
首先视频里用的是Linux系统,我这里用的是windows系统,都是python3.6 django1.11.11 Celery 4.3.0
场景还原
本机环境:
- windows 10
- python 3.6
- django 1.11.11
- Celery 4.3.0
tasks.py
from django.core.mail import send_mail
from django.conf import settings
from celery_tasks.main import celery_app
import logging
logger = logging.getLogger('django')
@celery_app.task(bind=True, name='send_verify_email', retry_backoff=3)
def send_verify_email(self, to_email, verify_url):
"""
发送验证邮箱邮件
:param to_email: 收件人邮箱
:param verify_url: 验证链接
:return: None
"""
subject = "*****"
html_message = '<p>*************</p>' \
'<p>*************</p>' \
'<p>您的邮箱为:%s 。请点击此链接激活您的邮箱:</p>' \
'<p><a href="%s">%s<a></p>' % (to_email, verify_url, verify_url)
try:
send_mail(subject, "", settings.EMAIL_FROM, [to_email], html_message=html_message)
except Exception as e:
logger.error(e)
# 有异常自动重试三次
raise self.retry(exc=e, max_retries=3)
执行worker
celery -A celery_tasks.main worker -l info
输出:
-------------- celery@gongjuren v4.3.0 (rhubarb)
---- **** -----
--- * *** *