@shared_task декоратор не работает
Проблема: @shared_task декоратор не работает, когда я импортирую данные из пользовательских файлов. Я имею в виду, что когда я запускаю сельдерей, все задачи в @shared_task не появляются в списке задач.
Например, в этом случае декоратор @shared_task не работает:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
from .models import foo
@shared_task
def my_foo_backup(id):
my_foo = foo(....)
...
...
Это пример, когда @shared_task работает:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
@shared_task
def my_foo_backup(id):
my_foo = foo(....)
...
...
Зачем?!?
1 ответ
Решение
Решением этой проблемы было перемещение import
Команды внутри функции. Таким образом, он работает нормально и в соответствии с правилами PEP8.
from __future__ import absolute_import, unicode_literals
from celery import shared_task
@shared_task
def my_foo_backup(id):
from .models import foo
my_foo = foo(....)
...
...