task_app.py 995 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import logging
  2. from quart_cors import cors
  3. from quart import Quart
  4. from app.core.bootstrap import AppContext
  5. from app.core.dependency import ServerContainer
  6. from app.api.v1.routes import server_routes
  7. logging.basicConfig(level=logging.INFO)
  8. app = Quart(__name__)
  9. app = cors(app, allow_origin="*")
  10. server_container = ServerContainer()
  11. ctx = AppContext(server_container)
  12. config = server_container.config()
  13. log_service = server_container.log_service()
  14. mysql_manager = server_container.mysql_manager()
  15. task_registry = server_container.task_registry()
  16. routes = server_routes(mysql_manager, log_service, config, task_registry)
  17. app.register_blueprint(routes)
  18. @app.before_serving
  19. async def startup():
  20. logging.info("Starting application...")
  21. await ctx.start_up()
  22. logging.info("Application started successfully")
  23. @app.after_serving
  24. async def shutdown():
  25. logging.info("Shutting down application...")
  26. await ctx.shutdown()
  27. logging.info("Application shutdown successfully")