从Celery结果后端MYSQL查询结果

时间:2019-04-28 20:18:11

标签: python mysql celery

从celery的结果后端查询所有结果的最简单方法是什么?我正在使用MySQL数据存储作为结果后端。

Celery将结果存储为BLOB类型,因此我无法将结果存储为纯文本。

如果您想知道为什么要这样做,用例是查询Celery执行的所有任务的结果。

1 个答案:

答案 0 :(得分:2)

结果不会存储为任意的BLOB类型,Celery将SQLAlchemy用于数据库后端,并将结果存储为PickleType(请参见Celery code)。从文档到PickleType

  

PickleType建立在Binary类型的基础上,将Python的pickle.dumps()应用于传入的对象,而pickle.loads()则适用于传入对象,从而允许将任何可腌制的Python对象存储为序列化的二进制字段。

因此,您应该能够简单地在所选数据上使用pickle.loads()