python – 获取线程中任何位置的当前celery任务ID

我想将任务ID放在正在运行的任务中,
不知道我在哪个任务.
(这就是为什么我不能使用https://stackoverflow.com/a/8096086/245024)

我希望它是这样的:

@task
def my_task():
    foo()

def foo():
    logger.log(current_task_id)

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

一个选项可能是使用线程本地存储,但是我需要在任务启动之前初始化它,并在完成后清理它.

有什么比这更简单的了吗?

最佳答案
from celery import current_task
print current_task.request.id

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

转载注明原文:python – 获取线程中任何位置的当前celery任务ID - 代码日志