Bläddra i källkod

update celery beat scheduler time to env (#6352)

Jyong 9 månader sedan
förälder
incheckning
7c397f5722
3 ändrade filer med 16 tillägg och 3 borttagningar
  1. 4 0
      api/.env.example
  2. 9 0
      api/configs/feature/__init__.py
  3. 3 3
      api/extensions/ext_celery.py

+ 4 - 0
api/.env.example

@@ -256,3 +256,7 @@ WORKFLOW_CALL_MAX_DEPTH=5
 # App configuration
 APP_MAX_EXECUTION_TIME=1200
 APP_MAX_ACTIVE_REQUESTS=0
+
+
+# Celery beat configuration
+CELERY_BEAT_SCHEDULER_TIME=1

+ 9 - 0
api/configs/feature/__init__.py

@@ -23,6 +23,7 @@ class SecurityConfig(BaseSettings):
         default=24,
     )
 
+
 class AppExecutionConfig(BaseSettings):
     """
     App Execution configs
@@ -435,6 +436,13 @@ class ImageFormatConfig(BaseSettings):
     )
 
 
+class CeleryBeatConfig(BaseSettings):
+    CELERY_BEAT_SCHEDULER_TIME: int = Field(
+        description='the time of the celery scheduler, default to 1 day',
+        default=1,
+    )
+
+
 class FeatureConfig(
     # place the configs in alphabet order
     AppExecutionConfig,
@@ -462,5 +470,6 @@ class FeatureConfig(
 
     # hosted services config
     HostedServiceConfig,
+    CeleryBeatConfig,
 ):
     pass

+ 3 - 3
api/extensions/ext_celery.py

@@ -43,15 +43,15 @@ def init_app(app: Flask) -> Celery:
         "schedule.clean_embedding_cache_task",
         "schedule.clean_unused_datasets_task",
     ]
-
+    day = app.config["CELERY_BEAT_SCHEDULER_TIME"]
     beat_schedule = {
         'clean_embedding_cache_task': {
             'task': 'schedule.clean_embedding_cache_task.clean_embedding_cache_task',
-            'schedule': timedelta(days=1),
+            'schedule': timedelta(days=day),
         },
         'clean_unused_datasets_task': {
             'task': 'schedule.clean_unused_datasets_task.clean_unused_datasets_task',
-            'schedule': timedelta(minutes=3),
+            'schedule': timedelta(days=day),
         }
     }
     celery_app.conf.update(