使用的版本
django3.0.4
redis 3.2.100
celery:4.6.10
windows10
出现的错误
错误一:
RecursionError: maximum recursion depth exceeded while calling a Python object
- 问题出现的原因:
使用:redis数据库的时候数据库有密码,在使用reids做中间人的时候没有配置密码 - 解决:配置密码 ,密码为abcd,配置如下
Celery(‘celery_tasks.tasks’, broker=‘redis://:abcd@127.0.0.1:6379/8’)
错误二:
tasks, accept, hostname = _loc
ValueError: not enough values to unpack (expected 3, got 0)
- 使用celery -A celery_tasks.tasks worker -l info启动任务处理者的时候出现的
- 解决方法:
在任务处理的函数中配置django的配置文件的过城中加上这句:
os.environ.setdefault(‘FORKED_BY_MULTIPROCESSING’, ‘1’)
如下:
解决:
发送邮件的代码
-
视图中的代码 views.py
from celery_tasks.tasks import send_register_active_email # 1. 加密用户的身份信息,生成激活的token , 3600秒 serializer =