在线程中的任何位置获取当前的芹菜任务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

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

相关内容

  • 没有找到相关文章

最新更新