2013-11-24 3 views
3

я хотел бы получить идентификатор задачи внутри выполняемой задачи, , не зная, какую задачу я нахожусь в. (Вот почему я не могу использовать https://stackoverflow.com/a/8096086/245024)Получить текущий идентификатор сельдерея задачи в любом месте в потоке

Я хотел бы, чтобы это было что-то вроде этого:

@task 
def my_task(): 
    foo() 

def foo(): 
    logger.log(current_task_id) 

Этот шаблон возвращает во многих различных задач, и я не хочу нести контекст задачи для каждого внутреннего вызова метода.

Одним из вариантов может быть использование локального хранилища потоков, но тогда мне нужно будет инициализировать его перед запуском задачи и очистить его после его завершения.

Есть ли что-то более простое?

+3

Можете ли вы не использовать 'из импорта сельдерея current_task; current_task.request.id'? – asksol

+0

Это именно то, что я искал. Благодаря! – lev

ответ

1
from celery import current_task 
print current_task.request.id 

Я просто копирую это из комментария, потому что это должен быть ответ, поэтому благодаря @asksol.

 Смежные вопросы

  • Нет связанных вопросов^_^