获取 celery AsyncResult 的任务名称

Xeu*_*eus 5 python celery

我正在使用 celery 来执行异步任务,我想要实现的是在执行任务后获取工作流中每个任务的名称和 id。

        exec_workflow = chain(
            task1.si(),
            task2.si(),
            task3.si()
    )

    result = exec_workflow.apply_async()

    tasks = []
    for t in result._parents():
        tasks.append({"id": t.id, "name": t.name})
Run Code Online (Sandbox Code Playgroud)

但由于某些奇怪的原因,AsyncResult 似乎没有 name 属性。知道什么是适当的方法来做到这一点吗?

另一种方法可能是在执行 apply_async 之前在每个任务上强制使用 id,这将解决我的问题,因为我将能够将 id 与任务名称匹配。但我不确定是否可能。

谢谢。

Xeu*_*eus -10

好吧,我已经解决了我的问题。我最终所做的就是设置每个任务的 id 属性。