resource_manager.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  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. logger.info("关闭数据库连接池")
  18. mysql = self.container.mysql_manager()
  19. await mysql.close_pools()
  20. logger.info("应用资源已释放")
  21. logger.info("关闭日志服务")
  22. log_service = self.container.log_service()
  23. await log_service.stop()
  24. logger.info("aliyun log service stopped")
  25. __all__ = [
  26. "AppContext",
  27. ]