2013-11-24 54 views
3

我想獲得一個正在運行的任務中任務ID的任何地方, 不知道我在哪個任務。 (這就是爲什麼我不能用https://stackoverflow.com/a/8096086/245024獲取當前芹菜任務ID在線程

我想它是這樣的:

@task 
def my_task(): 
    foo() 

def foo(): 
    logger.log(current_task_id) 

這種模式將返回在許多不同的任務,我不想進行任務上下文到每一個內部方法調用。

一個選項可能是使用線程本地存儲,但是之後我需要在任務啓動之前初始化它,並在完成之後清理它。

有沒有更簡單的方法?

+3

你不能使用'from celery import current_task; current_task.request.id'? – asksol

+0

這正是我正在尋找的。謝謝! – lev

回答

1
from celery import current_task 
print current_task.request.id 

我只是從評論中複製這個,因爲它應該是一個答案,所以感謝@asksol。