6

我想在正在运行的任务中获取任务 ID,但不知道我在执行哪个任务。(这就是我不能使用https://stackoverflow.com/a/8096086/245024的原因)

我希望它是这样的:

@task
def my_task():
    foo()

def foo():
    logger.log(current_task_id)

这种模式在许多不同的任务中返回,我不想将任务上下文带到每个内部方法调用中。

一种选择是使用线程本地存储,但是我需要在任务开始之前对其进行初始化,并在完成后对其进行清理。

有没有更简单的?

4

1 回答 1

7
from celery import current_task
print current_task.request.id

我只是从评论中复制这个,因为它应该是一个答案,所以感谢@asksol。

于 2017-11-22T02:32:06.000 回答