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

ada*_*rsh 1 python celery

我有类似的东西

from uuid import uuid4
task_id = uuid4()
(task1.s(args..) | task2.s() | task3.s()).apply_async(task_id=task_id)
Run Code Online (Sandbox Code Playgroud)

现在我希望这个自定义task_id是第一个任务的任务ID,task1但是当我尝试从task1使用中记录它时它是不同的self.request.id

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

dan*_*ula 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()
Run Code Online (Sandbox Code Playgroud)