2015-05-12 80 views
1

我正在使用celery on_failure處理程序記錄所有失敗的任務以進行調試和分析。我想知道失敗任務的任務名稱(函數名稱),我怎麼能得到它?芹菜:通過任務ID獲取函數名稱?

from celery import Task 

class DebugTask(Task): 
    abstract = True 

    def after_return(self, *args, **kwargs): 
     print('Task returned: {0!r}'.format(self.request)) 

    def on_failure(self, exc, task_id, args, kwargs, einfo): 
     func_name = get_func_name_by_task_id(task_id) # how do I do this? 
     print "{} failed".format(func_name)   # expected out: add failed. 

@app.task(base=DebugTask) 
def add(x, y): 
    return x + y 

PS:我知道有task_id,但task_id查詢函數名,每次不好玩,

回答