| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import logging
- from app.core.dependency import ServerContainer
- logger = logging.getLogger(__name__)
- class AppContext:
- def __init__(self, container: ServerContainer):
- self.container = container
- async def start_up(self):
- logger.info("初始化数据库连接池")
- mysql = self.container.mysql_manager()
- await mysql.init_pools()
- logger.info("Mysql pools init successfully")
- logger.info("初始化日志服务")
- log_service = self.container.log_service()
- await log_service.start()
- logger.info("aliyun log service init successfully")
- async def shutdown(self):
- logger.info("取消所有运行中的任务")
- registry = self.container.task_registry()
- cancelled_count = await registry.cancel_all()
- logger.info(f"已取消 {cancelled_count} 个运行中的任务")
- logger.info("关闭数据库连接池")
- mysql = self.container.mysql_manager()
- await mysql.close_pools()
- logger.info("应用资源已释放")
- logger.info("关闭日志服务")
- log_service = self.container.log_service()
- await log_service.stop()
- logger.info("aliyun log service stopped")
- __all__ = [
- "AppContext",
- ]
|