start_server.py 843 B

123456789101112131415161718192021222324252627282930
  1. import argparse
  2. import fire
  3. import uvicorn
  4. from loguru import logger
  5. from sorawm.configs import LOGS_PATH
  6. from sorawm.server.app import init_app
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument("--host", default="0.0.0.0", help="host")
  9. parser.add_argument("--port", default=5344, help="port")
  10. parser.add_argument("--workers", default=1, type=int, help="workers")
  11. args = parser.parse_args()
  12. logger.add(LOGS_PATH / "log_file.log", rotation="1 week")
  13. def start_server(port=args.port, host=args.host):
  14. logger.info(f"Starting server at {host}:{port}")
  15. app = init_app()
  16. config = uvicorn.Config(app, host=host, port=port, workers=args.workers)
  17. server = uvicorn.Server(config=config)
  18. try:
  19. server.run()
  20. finally:
  21. logger.info("Server shutdown.")
  22. if __name__ == "__main__":
  23. fire.Fire(start_server)