gpt4 book ai didi

django - 获取使用 celery cord 创建的所有任务的 task_ids

转载 作者:行者123 更新时间:2023-12-02 20:01:32 24 4
gpt4 key购买 nike

我的目标是从 django celery 和弦调用中检索所有 task_ids ,以便我可以在以后需要时撤销任务。但是,我无法找出检索任务 ID 的正确方法。我将和弦执行为:

c = chord((loadTask.s(i) for i in range(0, num_lines, CHUNK_SIZE)), finalizeTask.si())
task_result = c.delay()
# get task_ids

我检查了task_result的子变量,但它是None。

我可以通过使用组和另一个任务来手动创建和弦语义,如下所示,并检索关联的 task_ids,但我不喜欢中断调用。 当此代码作为子任务在任务中运行时,如果在终结任务开始之前撤销组,可能会导致主任务挂起

g = group((loadTask.s(i) for i in range(0, num_lines, CHUNK_SIZE))) 
task_result = g.delay()
storeTaskIds(task_result.children)
task_result.get()

task_result2 = self.finalizeTask.delay()
storeTaskIds([task_result2.task_id])

如有任何想法,我们将不胜感激!

最佳答案

我正在尝试做类似的事情,我希望我可以通过一次调用来撤销和弦,并且其中的所有内容都会为我递归撤销。

您可以在群组和 finalizeTask 之间建立一个和弦,以避免中断通话。

我意识到这将在你提出要求两个月后到来,但也许它会对某人有所帮助,也许我应该获取我组中所有内容的任务 ID。

关于django - 获取使用 celery cord 创建的所有任务的 task_ids,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com