import os from dotenv import load_dotenv from celery import Celery load_dotenv() redis_host = os.getenv("REDIS_HOST", "localhost") redis_port = os.getenv("REDIS_PORT", "6379") redis_password = os.getenv("REDIS_PASSWORD", "") redis_db = os.getenv("REDIS_DB", "0") if redis_password: broker_url = f"redis://:{redis_password}@{redis_host}:{redis_port}/{redis_db}" else: broker_url = f"redis://{redis_host}:{redis_port}/{redis_db}" app = Celery( "moldinsight", broker=broker_url, backend=broker_url, include=["celery_tasks"], ) app.conf.update( task_serializer="json", result_serializer="json", accept_content=["json"], task_acks_late=True, worker_prefetch_multiplier=1, task_track_started=True, task_soft_time_limit=1800, task_time_limit=2100, broker_connection_retry_on_startup=True, )