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
原文地址:https://www.cnblogs.com/pythonwl/p/13551883.html