from django.apps import AppConfig import logging from .management.commands.vdes_monitor import VDESSocketMonitor class SystemConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'system' def ready(self): # 确保只在主进程中启动(避免在开发服务器中启动两次) if not self._is_runserver_with_reload(): self.start_vdes_monitor() from .models import MessageFlag try: # 确保表创建完成后检查是否存在记录 if not MessageFlag.objects.exists(): MessageFlag.objects.create(has_new_message=False) print("初始化 MessageFlag: 已创建默认记录") except: print("初始化 MessageFlag 失败") def _is_runserver_with_reload(self): """检查是否在开发服务器的重载进程中""" import sys return 'runserver' in sys.argv and '--noreload' not in sys.argv def start_vdes_monitor(self): """启动 VDES 监控服务""" monitor = VDESSocketMonitor() monitor.start() logger = logging.getLogger(__name__) logger.info("VDES 监控服务已启动")