python - 从 Celery 中的 taskset_id 检索 GroupResult?

标签 python celery celery-task

我正在使用 celery 组启动一组 celery 任务,如 official documentation 中所述

我还将组(任务集)ID 存储到数据库中,以便轮询 celery 的任务集状态。

job = group([
        single_test.s(1, 1),
        single_test.s(1, 2),
        single_test.s(1, 3),
    ])

result = job.apply_async()

test_set = MyTestSet()
test_set.taskset_id = result.id

# store test_set into DB

有没有办法从任务集 ID 开始获取 GroupResult 对象(即我的 result)? 类似于 this question 中所做的事情,但与 celery 组合作。

我已经尝试过:

r = GroupResult(taskset_id)

但它不起作用,因为 r.results() 始终为空。

我应该使用 GroupResult.save()GroupResult.restore() methods

最佳答案

是的,您必须保存结果然后恢复它。

job = group([
    single_test.s(1, 1),
    single_test.s(1, 2),
    single_test.s(1, 3),
])
result = job.apply_async()
result.save()

from celery.result import GroupResult
saved_result = GroupResult.restore(result.id)

我遇到了同样的问题,在看到您关于保存/恢复的提示后,我终于弄明白了。

关于python - 从 Celery 中的 taskset_id 检索 GroupResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13685344/

相关文章:

Python Pandas : Bar plot X axis issue

python - 为什么 "except"中的未定义名称不会引发 NameError?

用于搜索哈希值中特定字符串的Python程序(编码帮助)

python - 如何查看rabbitmq队列中推送的所有celery任务

ubuntu - 如何从头开始重启redis和celery?

django - 为什么在启动 celery 时没有检测到我的环境变量?

django - 从前端使用 AJAX 查询 Celery 以了解创建的任务是否完成的最佳方法?

python - 考虑到所有多边形都是一个分区,如何快速查找包含点的多边形?

python - celery 结果错误 "args must be a list or tuple"

python - 如何通过名称限制运行的 Celery 任务的最大数量