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

匿名 (未验证) 提交于 2019-12-02 23:32:01
     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"]            # 指定任务接受的内容序列化的类型.

就成功了

文章来源: https://blog.csdn.net/CaoMei_HuaCha/article/details/90210977
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!