作者:刘妤劭明馨 | 来源:互联网 | 2023-10-13 10:22
问题:使用redis和celery执行异步任务时报错Filehomeling.virtualenvsdailyfreshlibpython3.6site-packa
问题:使用redis和celery执行异步任务时报错 File"/home/ling/.virtualenvs/dailyfresh/lib/python3.6/site-packages/redis/_compat.py", line 123, in iteritems return iter(x.items()) AttributeError: ‘float’ object has no attribute ‘items’
原因: 有的说是python 的redis包版本太高了,降低版本:pip install redis==2.10.6 也有说法是3以后的版本和2的版本的兼容问题,不回退版本进行兼容配置亦可。
解决: 进入到报错的目录下: copy自己报错的目录。
cd /home/ling/.virtualenvs/dailyfresh/lib/python3.6/site-packages/kombu/transport/
找到redis.py文件,进行修改 修改redis.py文件里面的这行代码: pipe.zadd(self.unacked_index_key, delivery_tag, time()) ###改成pipe.zadd(‘self.unacked_index_key’, {delivery_tag:time()})
执行成功
处理者一方必须初始化django环境, import osimport django os. environ. setdefault( 'DJANGO_SETTINGS_MODULE' , 'dailyfresh.settings' ) django. setup( )
否则会报错。