index.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import asyncio
  2. import sys
  3. import uvicorn
  4. import signal
  5. from api import *
  6. from sockets.socket_server import *
  7. import uvicorn.loops.auto
  8. import uvicorn.protocols.http.auto
  9. import uvicorn.protocols.websockets.auto
  10. import uvicorn.lifespan.on
  11. from multiprocessing import Process, freeze_support
  12. from service.init_load_source import init_load_source
  13. def handle_shutdown(signum, frame):
  14. """关闭系统应用服务"""
  15. # 终止事件循环
  16. loop = asyncio.get_event_loop()
  17. loop.call_soon_threadsafe(loop.stop)
  18. sys.exit(0)
  19. async def run_server():
  20. # 启动uvicorn服务器
  21. isDebug = True if IS_DEBUG == "true" else False
  22. config = uvicorn.Config(
  23. APP_RUN,
  24. host=APP_HOST,
  25. port=int(PORT),
  26. reload=isDebug,
  27. workers=int(APP_WORKS),
  28. )
  29. server = uvicorn.Server(config)
  30. await server.serve()
  31. async def main():
  32. # await init_load_source().load_source()
  33. await run_server()
  34. # await asyncio.gather(run_server(), init_load_source().load_source())
  35. if __name__ == "__main__":
  36. signal.signal(signal.SIGINT, handle_shutdown)
  37. signal.signal(signal.SIGTERM, handle_shutdown)
  38. print("python server is running at port:", PORT)
  39. print("python server is running at port:", APP_RUN)
  40. # asyncio.run(main())
  41. isDebug = True if IS_DEBUG == "true" else False
  42. uvicorn.run(
  43. app=APP_RUN,
  44. host=APP_HOST,
  45. port=int(PORT),
  46. reload=isDebug,
  47. loop="auto",
  48. )