在我运行一个异步任务之后
tasks.add.apply_async( (10, 10))
我检查了结果后端数据库表 celery_taskmeta 并注意到结果包含类似 gAJLBC4=
的内容我无法在文档中找到该结果意味着什么以及我是否可以将函数调用的实际结果(即返回值)按原样存储在表中。
在这个例子中,我正在执行一个将两个数字相加的任务:10 和 10,celery_taskmeta 中的 result 列根据我的理解应该有 20(这是可能是错误的)。
我应该如何实现?
我假设结果也被序列化了?我正在使用 Redis 代理,但不清楚我需要设置哪个配置才能检索实际返回值。
最佳答案
获得结果的最好方法不是直接查询数据库,而是使用 result api
result = tasks.add.apply_async( (10, 10))
result.ready
> True
result.result
> 20
关于serialization - Celery 结果后端在结果列中存储编码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32420528/