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