使用django 、redis和celery做异步的邮件发送出现的错误
使用的版本
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://:[email protected]: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’)
如下:
解决: