#!/usr/bin/env python3 # -*- coding: utf-8 -*- import logging logger = logging.getLogger(__name__) class ServiceManager: """服务管理器""" def __init__(self): self.services = {} # 记录框架启动时间 self.start_time = time.time() logger.debug("ServiceManager初始化完成") def register_service(self, name: str, service_instance): """注册服务""" try: if name in self.services: logger.warning(f"服务 {name} 已存在,将被覆盖") self.services[name] = service_instance logger.debug(f"服务 {name} 注册成功") except Exception as e: logger.error(f"注册服务 {name} 时出错: {str(e)}", exc_info=True) raise def get_service(self, name: str): """获取服务""" try: service = self.services.get(name) if not service: logger.error(f"服务 {name} 不存在") raise ValueError(f"服务 {name} 未找到") logger.debug(f"成功获取服务 {name}") return service except Exception as e: logger.error(f"获取服务 {name} 时出错: {str(e)}", exc_info=True) raise def shutdown_all(self): """关闭所有服务""" logger.info("开始关闭所有服务") for name, service in self.services.items(): try: if hasattr(service, 'shutdown'): service.shutdown() logger.debug(f"服务 {name} 关闭成功") except Exception as e: logger.error(f"关闭服务 {name} 时出错: {str(e)}", exc_info=True) logger.info("所有服务关闭完成")