From 37d9ae8cca08eb6f1bd1fee966d5a65b0b11d4e6 Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Mon, 5 May 2025 15:36:36 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20force=20loading=20celery?= =?UTF-8?q?=20shared=20task=20in=20libraries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Library we are using can have celery shared task. We have to make some modification to load them earlier when the celery app is configure and when the impress app is loaded. --- src/backend/impress/__init__.py | 5 +++++ src/backend/impress/celery_app.py | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/backend/impress/__init__.py b/src/backend/impress/__init__.py index e69de29b..36f27b88 100644 --- a/src/backend/impress/__init__.py +++ b/src/backend/impress/__init__.py @@ -0,0 +1,5 @@ +"""Impress package. Import the celery app early to load shared task form dependencies.""" + +from .celery_app import app as celery_app + +__all__ = ["celery_app"] diff --git a/src/backend/impress/celery_app.py b/src/backend/impress/celery_app.py index 37d7a70d..e38c5707 100644 --- a/src/backend/impress/celery_app.py +++ b/src/backend/impress/celery_app.py @@ -11,6 +11,9 @@ os.environ.setdefault("DJANGO_CONFIGURATION", "Development") install(check_options=True) +# Can not be loaded only after install call. +from django.conf import settings # pylint: disable=wrong-import-position + app = Celery("impress") # Using a string here means the worker doesn't have to serialize @@ -20,4 +23,4 @@ app = Celery("impress") app.config_from_object("django.conf:settings", namespace="CELERY") # Load task modules from all registered Django apps. -app.autodiscover_tasks() +app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)