来自 Celery 结果后端的查询结果 MYSQL

Query results from Celery Results Backend MYSQL

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

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

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

结果未存储为任意 BLOB 类型,Celery 使用 SQLAlchemy 作为数据库后端并将结果存储为 PickleType (see the Celery code)。从文档到 PickleType:

PickleType builds upon the Binary type to apply Python’s pickle.dumps() to incoming objects, and pickle.loads() on the way out, allowing any pickleable Python object to be stored as a serialized binary field.

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