学习celery时遇到的坑

python学习网 2020-07-10 18:16:03

1.  报错信息

1. 

def _connparams(self, async=False, _r210_options=(
                              ^
SyntaxError: invalid syntax

原因: async 在 python3.7已经是关键字了,但是celery4.4.6版本没有更新导致的。此问题将在下一个版本修复。

解决办法: 将celery文件中的async命名为其他变量名/ 或者降低python版本3.7之下的

2. 

from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger
                   ^
SyntaxError: invalid synta

同上

3. 启动worker 后执行task报错

tasks, accept, hostname = _loc
ValueError: not enough values to unpack (expected 3, got 0)

解决办法:在win10环境下运行celery4.x会出现此问题。先通过pip install eventlet安装eventlet,然后启动worker时添加一个参数: 

celery worker <module> worker -l INFO -P eventlet

 4. 使用redis作为borker时

ERROR/MainProcess] Unrecoverable error: AttributeError("'str' object has no attribute 'items'",)-bug

原因: redis版本过高当时redis版本是3.5.3

解决办法:降低redis版本到2.10.6


        
阅读(2857) 评论(0)