diff --git a/apps/common/management/commands/services/command.py b/apps/common/management/commands/services/command.py index 05095e5cb..4ed5104bb 100644 --- a/apps/common/management/commands/services/command.py +++ b/apps/common/management/commands/services/command.py @@ -11,7 +11,6 @@ class Services(TextChoices): gunicorn = 'gunicorn', 'gunicorn' celery_default = 'celery_default', 'celery_default' local_model = 'local_model', 'local_model' - scheduler = 'scheduler', 'scheduler' web = 'web', 'web' celery = 'celery', 'celery' celery_model = 'celery_model', 'celery_model' @@ -25,7 +24,6 @@ class Services(TextChoices): cls.gunicorn.value: services.GunicornService, cls.celery_default: services.CeleryDefaultService, cls.local_model: services.GunicornLocalModelService, - cls.scheduler: services.SchedulerService, } return services_map.get(name) @@ -41,13 +39,10 @@ class Services(TextChoices): def task_services(cls): return cls.celery_services() - @classmethod - def scheduler_services(cls): - return [cls.scheduler] @classmethod def all_services(cls): - return cls.web_services() + cls.task_services() + cls.scheduler_services() + return cls.web_services() + cls.task_services() @classmethod def export_services_values(cls): diff --git a/apps/maxkb/wsgi/web.py b/apps/maxkb/wsgi/web.py index f918fdf33..d1fa687d8 100644 --- a/apps/maxkb/wsgi/web.py +++ b/apps/maxkb/wsgi/web.py @@ -44,15 +44,5 @@ def post_handler(): DatabaseModelManage.init() -def post_scheduler_handler(): - from common import job - - job.run() - - # 启动后处理函数 post_handler() - -# 仅在scheduler中启动定时任务,dev local_model celery 不需要 -if os.environ.get('ENABLE_SCHEDULER') == '1': - post_scheduler_handler() diff --git a/apps/ops/celery/signal_handler.py b/apps/ops/celery/signal_handler.py index 91cba3ed0..132ca350d 100644 --- a/apps/ops/celery/signal_handler.py +++ b/apps/ops/celery/signal_handler.py @@ -17,12 +17,20 @@ from .logger import CeleryThreadTaskFileHandler logger = logging.getLogger(__file__) safe_str = lambda x: x +def init_scheduler(): + from common import job + + job.run() + @worker_ready.connect def on_app_ready(sender=None, headers=None, **kwargs): if cache.get("CELERY_APP_READY", 0) == 1: return cache.set("CELERY_APP_READY", 1, 10) + # 初始化定时任务 + init_scheduler() + tasks = get_after_app_ready_tasks() logger.debug("Work ready signal recv") logger.debug("Start need start task: [{}]".format(", ".join(tasks))) diff --git a/apps/users/apps.py b/apps/users/apps.py index 72b140106..c115a830a 100644 --- a/apps/users/apps.py +++ b/apps/users/apps.py @@ -4,3 +4,6 @@ from django.apps import AppConfig class UsersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'users' + + def ready(self): + from ops.celery import signal_handler \ No newline at end of file