坑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