環境描述
python2+django1.9下使用celery異步處理耗時請求。
celery使用的是celery-with-redis這個第三方庫,版本號為3.0。
pip install celery-with-redis
這樣安裝會將redis、celery-with-redis、redis等一起同時安裝。
錯誤描述
錯誤提示:Unrecoverable error: AttributeError("'unicode' object has no attribute 'iteritems')
問題發現及解決
將這個錯誤Google后,在stackoverflow中發現了解決辦法,地址:stack overflow,celery-github
問題的症結是redis的版本號為3.0以上,導致celery將其作為消息中間件的時候出現問題,給出的解決方案是安裝3.0以下的redis版本。這里我們安裝redis==2.10.6
- 首先
pip uninstall redis
- 其次
pip install redis==2.10.6
- 最后
重新運行celery即可。
celery worker -A xxx -l INFO