Обнаружение задачи Сельдерея в приложении Django работает только частично

#python #django #python-3.x #celery #django-celery

#python #django #python-3.x #сельдерей #django-celery

Вопрос:

У меня довольно странная проблема с обнаружением задачи, функционирующей только частично в приложении Django.

У меня есть приложение со структурой, подобной:

 app
 |>celery.py
  >tasks
   |>__init__.py
   |>a.py
   |>b.py
   |>c.py
  

celery.py:

 class CeleryAppConfig(AppConfig):
    name = 'taskapp'
    verbose_name = 'Celery Config'

    def ready(self):
        installed_apps = [app_config.name for app_config in apps.get_app_configs()]
        app.autodiscover_tasks(lambda: installed_apps, force=True)
  

Init.py:

 from .a import *
from .b import *
from .c import *
  

a.py b.py amp; c.py@

 from celery import shared_task

@shared_task(bind=True)
def Task(self):
    #do stuff.
  

Проблема в том, что, хотя задачи в a.py и b.py автоматически обнаружены задачи в c.py нет.

Копирование функции из c.py для a.py означает, что оно распознано, а обратное — нет.

В конечном итоге я могу заставить его работать без задач в нескольких файлах, но это очень раздражает. Я использую python 3.6 на alpine с django 2 и celery 4.2