问题:使用celery开启异步任务报错'utf8' codec can't decode byte 0x80 in position 0: invalid start byte

    result = AsyncResult(id=_id, app=main.app).state
  File "E:\python2.7\lib\site-packages\celery\result.py", line 394, in state
    return self._get_task_meta()['status']
  File "E:\python2.7\lib\site-packages\celery\result.py", line 339, in _get_task_meta
    return self._maybe_set_cache(self.backend.get_task_meta(self.id))
  File "E:\python2.7\lib\site-packages\celery\backends\base.py", line 307, in get_task_meta
    meta = self._get_task_meta_for(task_id)
  File "E:\python2.7\lib\site-packages\celery\backends\base.py", line 521, in _get_task_meta_for
    return self.decode_result(meta)
  File "E:\python2.7\lib\site-packages\celery\backends\base.py", line 204, in decode_result
    return self.meta_from_decoded(self.decode(payload))
  File "E:\python2.7\lib\site-packages\celery\backends\base.py", line 211, in decode
    accept=self.accept)
  File "E:\python2.7\lib\site-packages\kombu\serialization.py", line 184, in loads
    return decode(data)
  File "E:\python2.7\lib\contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "E:\python2.7\lib\site-packages\kombu\serialization.py", line 59, in _reraise_errors
    reraise(wrapper, wrapper(exc), sys.exc_info()[2])
  File "E:\python2.7\lib\site-packages\kombu\serialization.py", line 55, in _reraise_errors
    yield
  File "E:\python2.7\lib\site-packages\kombu\serialization.py", line 184, in loads
    return decode(data)
  File "E:\python2.7\lib\site-packages\kombu\serialization.py", line 314, in _loads
    obj = obj.decode('utf-8')
  File "E:\python2.7\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
DecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte

windows开启任务,想要检查任务的状态

使用了方法AsyncResult

AsyncResult(id=str(task_id), app=main.app).state

但是报错了

原来的时候代码是这样的

CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24   # 任务过期时间
CELERY_ACCEPT_CONTENT = ["json"]            # 指定任务接受的内容序列化的类型.

修改后:

CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'pickle'
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24   # 任务过期时间
CELERY_ACCEPT_CONTENT = ["json", "pickle"]            # 指定任务接受的内容序列化的类型.

就成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值