From bc54bed1579d71153edae01ec777af0ef34a451f Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Mon, 16 Dec 2024 14:22:39 +0530 Subject: [PATCH] chore: add celery backend setup and cleanup settings --- apiserver/plane/settings/common.py | 42 ++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/apiserver/plane/settings/common.py b/apiserver/plane/settings/common.py index db9a244537..249cf573f6 100644 --- a/apiserver/plane/settings/common.py +++ b/apiserver/plane/settings/common.py @@ -146,8 +146,20 @@ else: } } +REDIS_HOST = os.environ.get("REDIS_HOST") +REDIS_PORT = os.environ.get("REDIS_PORT", "6379") +REDIS_USER = os.environ.get("REDIS_USER", "") +REDIS_PASSWORD = os.environ.get("REDIS_PASSWORD", "") + # Redis Config -REDIS_URL = os.environ.get("REDIS_URL") +if os.environ.get("REDIS_URL"): + REDIS_URL = os.environ.get("REDIS_URL") +else: + if not REDIS_HOST: + raise Exception("REDIS_HOST is not set") + REDIS_URL = f"redis://{REDIS_USER}:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}" # noqa + +# Check if redis url is ssl REDIS_SSL = REDIS_URL and "rediss" in REDIS_URL if REDIS_SSL: @@ -233,25 +245,29 @@ if AWS_S3_ENDPOINT_URL and USE_MINIO: AWS_S3_URL_PROTOCOL = f"{parsed_url.scheme}:" # RabbitMQ connection settings -RABBITMQ_HOST = os.environ.get("RABBITMQ_HOST", "localhost") +RABBITMQ_HOST = os.environ.get("RABBITMQ_HOST") RABBITMQ_PORT = os.environ.get("RABBITMQ_PORT", "5672") RABBITMQ_USER = os.environ.get("RABBITMQ_USER", "guest") RABBITMQ_PASSWORD = os.environ.get("RABBITMQ_PASSWORD", "guest") RABBITMQ_VHOST = os.environ.get("RABBITMQ_VHOST", "/") -AMQP_URL = os.environ.get("AMQP_URL") + +if os.environ.get("AMQP_URL"): + AMQP_URL = os.environ.get("AMQP_URL") +else: + if not RABBITMQ_HOST: + raise Exception("RABBITMQ_HOST is not set") + AMQP_URL = f"amqp://{RABBITMQ_USER}:{RABBITMQ_PASSWORD}@{RABBITMQ_HOST}:{RABBITMQ_PORT}/{RABBITMQ_VHOST}" # Celery Configuration -if AMQP_URL: - CELERY_BROKER_URL = AMQP_URL -else: - CELERY_BROKER_URL = f"amqp://{RABBITMQ_USER}:{RABBITMQ_PASSWORD}@{RABBITMQ_HOST}:{RABBITMQ_PORT}/{RABBITMQ_VHOST}" - +CELERY_BROKER_URL = AMQP_URL +CELERY_RESULT_BACKEND = REDIS_URL CELERY_TIMEZONE = TIME_ZONE CELERY_TASK_SERIALIZER = "json" CELERY_RESULT_SERIALIZER = "json" CELERY_ACCEPT_CONTENT = ["application/json"] - - +CELERY_RESULT_EXPIRES = int( + os.environ.get("CELERY_RESULT_EXPIRES", 60 * 60 * 24) +) # Expire results after 24 hours CELERY_IMPORTS = ( # scheduled tasks "plane.bgtasks.issue_automation_task", @@ -297,16 +313,10 @@ GITHUB_ACCESS_TOKEN = os.environ.get("GITHUB_ACCESS_TOKEN", False) ANALYTICS_SECRET_KEY = os.environ.get("ANALYTICS_SECRET_KEY", False) ANALYTICS_BASE_API = os.environ.get("ANALYTICS_BASE_API", False) - # Posthog settings POSTHOG_API_KEY = os.environ.get("POSTHOG_API_KEY", False) POSTHOG_HOST = os.environ.get("POSTHOG_HOST", False) -# instance key -INSTANCE_KEY = os.environ.get( - "INSTANCE_KEY", "ae6517d563dfc13d8270bd45cf17b08f70b37d989128a9dab46ff687603333c3" -) - # Skip environment variable configuration SKIP_ENV_VAR = os.environ.get("SKIP_ENV_VAR", "1") == "1"