celery處理任務老是出錯
這裏報錯,是celery內部使用redis庫時,報錯,redis接受celery傳入的str類型,而redis要接受的是mapping映射類型,肯定是哪個版本衝突,不兼容
1. 首先先看celery版本問題
django==1.8.1與celery==3.1.25不兼容,可以使用django==1.11與celery==3.1.25搭配 ,
celery==4.0以後使用了python3.5之後推出的async和await定義協程,所以如果想使用celery==4.0及以後版本,則需要python3.5以上最好是python3.6,python3.5也會報錯,django要使用2.0
這是celery版本問題
2. 再來看看redis版本,反正是其中之一
解決方案:
查了好久發現原來是因爲以前下的redis版本過高,重裝redis
sudo pip3 install redis==2.10.6
最好的辦法是捆綁依賴下載
對 Redis 的支持需要額外的依賴。你可以用 celery[redis] 捆綁 同時安裝 Celery 和這些依賴:
$ pip install -U celery[redis]