芹菜中查询结果后端的所有结果的最简单方法是什么?我正在使用 MySQL 数据存储作为我的结果后端。
Celery 将结果存储为 BLOB 类型,因此我无法以纯文本形式检索结果。
如果您想知道我为什么要这样做,用例是查询 Celery 执行的所有任务的结果。
结果不会存储为任意 BLOB 类型,Celery 将 SQLAlchemy 用于数据库后端,并将结果存储为 PickleType
(请参阅 Celery 代码(。从文档到PickleType
:
PickleType 建立在 Binary 类型的基础上,将 Python 的
pickle.dumps()
应用于传入的对象,并在输出时pickle.loads()
,允许将任何可挑剔的 Python 对象存储为序列化的二进制字段。
因此,您应该能够简单地对所选数据使用pickle.loads()
。