解决celery-redis异步错误: File "/ling/.virtualenvs/AttributeError: 'float' object has no attribute 'items'

在使用redis和celery执行异步任务时遇到错误:AttributeError: 'float' object has no attribute 'items'。该错误可能是由于redis包版本过高或者版本兼容性问题导致。解决方案包括降级redis包到2.10.6版本,或者修改redis.py文件中特定代码行,将`pipe.zadd(self.unacked_index_key, delivery_tag, time())`改为`pipe.zadd('self.unacked_index_key', {delivery_tag:time()})`。确保处理者一方已初始化django环境,以避免额外错误。" 80129573,5616035,Predix云网关服务与配置详解,"['物联网(IoT)', '云服务', '设备管理', 'API接口', '数据传输']
摘要由CSDN通过智能技术生成

问题:使用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文件,进行修改

我想将frontend 也是用volumes,将其映射到/app/frontend目录,在/app/frontend下install以及build,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件 FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
07-14
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值