从celery的结果后端查询所有结果的最简单方法是什么?我正在使用MySQL数据存储作为结果后端。
Celery将结果存储为BLOB类型,因此我无法将结果存储为纯文本。
如果您想知道为什么要这样做,用例是查询Celery执行的所有任务的结果。
答案 0 :(得分:2)
结果不会存储为任意的BLOB类型,Celery将SQLAlchemy用于数据库后端,并将结果存储为PickleType
(请参见Celery code)。从文档到PickleType
:
PickleType建立在Binary类型的基础上,将Python的
pickle.dumps()
应用于传入的对象,而pickle.loads()
则适用于传入对象,从而允许将任何可腌制的Python对象存储为序列化的二进制字段。
因此,您应该能够简单地在所选数据上使用pickle.loads()
。