#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