【发布时间】:2015-07-21 02:19:52
【问题描述】:
当我得到它的AsyncResult 对象并因此得到它的id 时,我应该如何检索任务的名称?
例如,如果我在一个链中启动两个任务:
>>> task_chain = (task_A.s() | task_B.s())
>>> async_result = task_chain.apply_async()
我可以使用这样的内部_parents() 方法检索 task_B 的 id 并因此检索 task_A:
>>> async_result.id
>>> 2ed28e84-0673-4491-a56f-c5ab8dfb5725
>>> async_result._parents()[0].id
>>> e793f4dc-5110-4f57-8f98-8caa48c40528
但是,当我尝试检索 task_name 时,我一无所获:
>>> async_result.task_name
>>> async_result._parents()[0].task_name
为什么会这样?这可能是一个错误吗?
我注意到,通过提交单个任务,AsyncResult 的 task_name 属性可以正常工作并返回正确的任务名称。
还有其他方法可以从 AsyncResult 对象中检索任务名称吗?
提前谢谢大家。
附: 我已经在这里找到了一个类似的问题,但似乎没有人提出一个实用且可行的解决方案。
更新
显然,我似乎在这个问题上碰壁了。在 github 上有一张关于完全相同问题的公开票,不同之处在于它涉及的是组而不是链。
【问题讨论】:
标签: django celery django-celery celery-task celeryd