diff --git a/src/backend/langflow/core/celery_app.py b/src/backend/langflow/core/celery_app.py index 7b89a05ab..85223491e 100644 --- a/src/backend/langflow/core/celery_app.py +++ b/src/backend/langflow/core/celery_app.py @@ -1,7 +1,11 @@ from celery import Celery -celery_app = Celery( - "langflow", broker="redis://queue:6379/0", backend="redis://queue:6379/0" -) -# command: celery -A langflow.worker.celery_app worker --loglevel=INFO -celery_app.conf.task_routes = {"langflow.worker.tasks.*": {"queue": "langflow"}} + +def make_celery(app_name: str): + celery_app = Celery(app_name) + celery_app.config_from_object("langflow.core.celeryconfig") + celery_app.conf.task_routes = {"langflow.worker.tasks.*": {"queue": "langflow"}} + return celery_app + + +celery_app = make_celery("langflow") diff --git a/src/backend/langflow/core/celeryconfig.py b/src/backend/langflow/core/celeryconfig.py index 647a7f93d..d7827b713 100644 --- a/src/backend/langflow/core/celeryconfig.py +++ b/src/backend/langflow/core/celeryconfig.py @@ -1,7 +1,13 @@ # celeryconfig.py import os -broker_url = os.environ.get("BROKER_URL", "redis://localhost:6379/0") -result_backend = os.environ.get("RESULT_BACKEND", "redis://localhost:6379/0") +langflow_redis_host = os.environ.get("LANGFLOW_REDIS_HOST") +langflow_redis_port = os.environ.get("LANGFLOW_REDIS_PORT") +if langflow_redis_host and langflow_redis_port: + broker_url = f"redis://{langflow_redis_host}:{langflow_redis_port}/0" + result_backend = f"redis://{langflow_redis_host}:{langflow_redis_port}/0" +else: + broker_url = os.environ.get("BROKER_URL", "redis://localhost:6379/0") + result_backend = os.environ.get("RESULT_BACKEND", "redis://localhost:6379/0") # tasks should be json or pickle accept_content = ["json", "pickle"]