serialization - Celery 结果后端在结果列中存储编码字符串

标签 serialization redis celery django-celery

在我运行一个异步任务之后

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/

相关文章:

node.js - Nodejs 中的 Redis for 循环无法正常工作

mongodb - 保存图表(数据库)的好解决方案

mysql - django 和 celery beat scheduler 没有数据库条目

django - 无法手动使用我的 DRF 序列化程序

javascript - RegExp 转到 toString 然后返回时出现意外行为

django - 按子字段对嵌套序列化器字段的 DRF 序列化器输出进行排序

java - 如何序列化和恢复函数列表?

Go lang Redis PubSub 在不同的 go 路由中用于发布和订阅

python - Flask celery 应用程序与普通 Flask 应用程序(如何使它们同时工作)

django - 如何关闭 celery 中的突出显示?