使用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

  1. 问题出现的原因:
    使用:redis数据库的时候数据库有密码,在使用reids做中间人的时候没有配置密码
  2. 解决:配置密码 ,密码为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)
使用django 、redis和celery做异步的邮件发送出现的错误

  1. 使用celery -A celery_tasks.tasks worker -l info启动任务处理者的时候出现的
  2. 解决方法:
    在任务处理的函数中配置django的配置文件的过城中加上这句:
    os.environ.setdefault(‘FORKED_BY_MULTIPROCESSING’, ‘1’)
    如下:
    使用django 、redis和celery做异步的邮件发送出现的错误
    解决:
    使用django 、redis和celery做异步的邮件发送出现的错误