resource_manager.py 945 B

1234567891011121314151617181920212223242526272829303132
  1. import logging
  2. from app.core.dependency import ServerContainer
  3. logger = logging.getLogger(__name__)
  4. class AppContext:
  5. def __init__(self, container: ServerContainer):
  6. self.container = container
  7. async def start_up(self):
  8. logger.info("初始化数据库连接池")
  9. mysql = self.container.mysql_manager()
  10. await mysql.init_pools()
  11. logger.info("Mysql pools init successfully")
  12. logger.info("初始化日志服务")
  13. log_service = self.container.log_service()
  14. await log_service.start()
  15. logger.info("aliyun log service init successfully")
  16. async def shutdown(self):
  17. """这里只做资源关闭;日志与告警 flush 由 task_app.py 统一编排"""
  18. logger.info("关闭数据库连接池")
  19. mysql = self.container.mysql_manager()
  20. await mysql.close_pools()
  21. logger.info("应用资源已释放")
  22. __all__ = [
  23. "AppContext",
  24. ]