如何在芹菜链中设置第一个任务的任务ID?

时间:2014-06-09 08:25:07

标签: python celery

我有类似的东西

from uuid import uuid4
task_id = uuid4()
(task1.s(args..) | task2.s() | task3.s()).apply_async(task_id=task_id)

现在我希望这个自定义task_id成为第一个任务task1的任务ID,但当我尝试使用task1 <{1}}从self.request.id进行记录时,它会有所不同

如何在此处设置自定义ID?

2 个答案:

答案 0 :(得分:5)

如果您想将task_id传递给链中的第一个任务,则应调用.subtask(),其中显示的选项多于.s().si()

from celery.utils import uuid
first_task_id = uuid()

(task1.subtask(args=(..), task_id=first_task_id) | task2.s() | task3.s()).apply_async()

答案 1 :(得分:1)

只是:

from uuid import uuid4
task_id = uuid4()
(task1.s(args..).set(task_id=task_id) | task2.s() | task3.s()).apply_async()