0
我想记录日志中各种任务的回溯 - 可以这样做吗?结果有父母,甚至可以输出图形,但我无法在任务或请求中看到父任务或任务ID。我是否必须手动将父母的任务ID传递给每个子任务?芹菜 - 如何记录父任务ID?
推论:将task_id设置为与父项相同的值是否安全?
编辑:示例代码:
@app.task()
def root_task(arg):
if arg:
subtask.delay(arg)
@app.task()
def subtask(arg):
import celery
print(dir(celery.current_task)) # get parent task id here?
print(dir(celery.current_task.request)) # no parent here either
注意,最好我想获得一个日志过滤器内部调用任务的ID,这显然不能访问的功能本地人,所以没有bind=True
对我也。
我还不够清楚,我猜。我有一个任务有条件地使用'subtask.delay(...)'开始另一个任务 - 我想从'subtask()'代码中记录调用者的'task_id'。我会编辑更清晰的问题。 – Baczek
@Baczek由于它们不相互关联,所以必须传递'task_id'。不过,我认为将task_id设置为与父'task_id'相同并不是一个好主意。 – ChillarAnand