У Celery проблемы с разрешением DNS?
Я использовал Celery для асинхронной регистрации электронной почты, но когда я запускаю этот асинхронный запрос, появляется следующая ошибка
С кодом задач celery проблем нет, потому что я мог использовать его раньше, но описанная выше ситуация возникла после того, как я сменил компьютер
код задачи
from django.core.mail import send_mail
from celery import shared_task
# 发送邮件验证码,使用task进行异步处理,获取从视图层获取来的值,然后发送到用户邮箱中
@shared_task
def send_email(request, rand_str):
send_mail(
subject='验证码',
message='你的验证码为:' + rand_str + '请不要将你的验证码告诉其他人',
from_email='TEXT',
recipient_list=[request],
fail_silently=False
)
return (request, rand_str)
основные настройки
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'xxx'
EMAIL_HOST_PASSWORD = 'xxx'
.> celery exchange=celery(direct) key=celery
Консоль запуска Celery может распознать эти задачи
[tasks]
. Let.tasks.add
. blog_index_html.tasks.send_email
Когда я искал несколько дней, я определил место BUG, оказалось, что модули eventlet и dnspython несовместимы, и я нашел решение в его официальном репозитории GIT.
.
Моя операция заключается в удалении и повторной установке модуля dnspython