使用redis和celery执行异步任务时报错AttributeError: 'str' object has no attribute 'iteritems'

在尝试使用Celery和redis执行异步任务时遇到AttributeError: 'str' object has no attribute 'iteritems'的问题。经过排查,发现可能是redis版本过高导致,将redis版本从3.0.1降至2.10.6后,错误得到解决。配置包括settings环境、init.py、celery.py、models.py、tasks.py、views.py和urls.py的更新,以及数据库迁移和Celery worker的启动。
摘要由CSDN通过智能技术生成

代码基本配置正常,但是运行Celery -A myproject worker -l info运行的时候了一个AttributeError: ‘str’ object has no attribute 'iteritems’错误,找了两天看到一个博客里的文章,错误问题和我的问题内容差不多,但是类型不一样,说是版本问题,我的原redis版本是3.0.1的版本,然后就试了试,降低了一下我的redis版本为2.10.6的版本,谁知道就正常了
下面是我的代码

settings环境配置

#celery中间人 redis://redis服务所在的ip地址:端口/数据库
BROKER_URL = 'redis://localhost:6379/0'
# celery结果返回,可用于跟踪结果
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

# celery内容等消息的格式设置
CELERY_ACCEPT_CONTENT = ['application/json', ]
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

# celery时区设置,使用settings中TIME_ZONE同样的时区
CELERY_TIMEZONE = TIME_ZONE

在工程目录下的init.py文件中设置

# coding:utf-8
from __future__ import absolute_import, unicode_literals

# 引入celery实例对象
from .celery import app as celery_ap
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值