@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(....)
    ...
    ...
Другие вопросы по тегам