天天看點

Windows10下Rabbitmq+Redis搭建Celery運作環境

  1. Rabbitmq是依賴于erlang語言的,必須先裝erlang;
  2. 最重要的一點:Rabbitmq的版本與erlang的版本是有對應關系的,一開始裝的時候版本對應沒有搞對結果遇到nodedown的問題,在網上搜的結果是去從C:/windows/下複制.erlang.cookie到使用者檔案夾下,結果C:/windows/下根本就沒有這個檔案!
  3. 後來一步步按照官方文檔走,終于裝成功了,官方文檔請檢視http://www.rabbitmq.com/install-windows-manual.html

總結:搭建環境之類的操作一定按照官方manual來,不要主觀臆測,一知半解的情況下就去做,可能會踩到很多坑。不要嫌看英文資料麻煩,英文資料實際上可能才是最正确的資料,很多中文資料都是二手的,有可能會把你帶坑裡去。

續:

搭好rabbitmq之後,用python的celery跑背景任務,rabbitmq作broker,redis作backend,結果任務執行完成後總是擷取不到結果,result.ready()總是傳回False。後經查閱資料後解決,是windows版的celery的問題,windows下使用celery指令跑worker時需要加上--pool=solo或者-P threads,完整指令為:

 celery -A tasks worker --loglevel=info -P threads

參考資料如下:

https://www.v2ex.com/t/177589

https://github.com/celery/celery/issues/2146 

https://github.com/celery/celery/issues/2428 

http://stackoverflow.com/questions/25495613/celery-getting-started-not-able-to-retrieve-results-always-pending?rq=1