Celery 運行——Windows 有點坑


坑1:

首先,你感覺設置分鍾的參數 timedelta ,不太准,這不是不准,這是版本不對。。。

celery 4.0開始已經不支持 windows平台了 天坑,注意一些模塊的 適用平台和版本 !!!

E:\爬蟲\kgw>celery --version
4.4.6 (cliffs)

E:\爬蟲\kgw>pip3 uninstall celery

坑2:

報錯”from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger”,
這是因為在 python 3.7 中將 async 作為了關鍵字,所以當 py 文件中出現
類似 from . import async, base 這類不符合python語法的語句時,Python會報錯;

解決方法: 在 `celery` 官方的提議下,建議將 kombu下的`async.py` 文件的
文件名改成 `asynchronous;然后把引用和這個文件的所有文件的里面的async改為asynchronous;`
我把修改好的文件放在附件中了,解壓后,替換到site-packages路徑下;

簡單的法子就是哪個導入文件報錯async,就把文件里的async替換成asynchronous;

其實,如果你在 Windows 平台,Celery 和 Python 解釋器 都降低版本就好了

版本如下:

windows10

python:3.5

celery: 3.1.25

坑3:

使用 3.5 的解釋器,但是啟動 celery 還是用的 3.8 包中的模塊導致報錯。

解決:這是因為你多個python解釋器,3.8變量在 3.5 的前面,導致找的是3.8的模塊

坑4:

啟動celery報錯:AttributeError: str object has no attribute items

問題是:開啟worker和beat進程后發現周期性任務沒有被執行?

celery4中才引入了beat_schedule這些小寫變量,以前都是大寫變量。
即:Version 4.0 introduced new lower case settings and setting organization. 
具體見[說明]
http://docs.celeryproject.org/en/latest/userguide/configuration.html#example-configuration-file


因此,把變量名改回了大寫CELERYBEAT_SCHEDULE。

https://docs.celeryproject.org/en/latest/userguide/configuration.html#example-configuration-file


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM