From b6c1ff187805c7e42456a5e8d8f259095476424b Mon Sep 17 00:00:00 2001 From: JIANG Date: Tue, 9 Dec 2025 15:22:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8B=E4=BB=B6=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 3 +-- run_server.py | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 5e07067..0eae34e 100644 --- a/main.py +++ b/main.py @@ -3487,7 +3487,6 @@ async def fastapi_run_simulation_manually_by_date( thread.start() thread.join() # 等待线程完成 - return {"status": "success"} except Exception as e: return {"status": "error", "message": str(e)} @@ -4232,7 +4231,7 @@ async def get_dict(item: Item): if __name__ == "__main__": # uvicorn.run(app, host="0.0.0.0", port=8000) # url='http://127.0.0.1:8000/valve_close_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&valve_IDs=GSD2307192058577780A3287D78&valve_IDs=GSD2307192058572E953B707226(S2)&duration=1800' - url='http://127.0.0.1:8000/burst_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&burst_ID=ZBBGXSZW000001&duration=1800' + url = "http://127.0.0.1:8000/burst_analysis?network=beibeizone&start_time=2024-04-01T08:00:00Z&burst_ID=ZBBGXSZW000001&duration=1800" # url = "http://192.168.1.36:8000/queryallschemeallrecords/?schemename=Fangan0817114448&querydate=2025-08-13&schemetype=burst_Analysis" # response = Request.get(url) diff --git a/run_server.py b/run_server.py index 8e7df70..8610dc8 100644 --- a/run_server.py +++ b/run_server.py @@ -1,6 +1,27 @@ import asyncio +import sys import uvicorn + if __name__ == "__main__": - asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) - uvicorn.run("main:app", host="0.0.0.0", port=8000) + # Windows 设置事件循环策略 + if sys.platform == "win32": + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + + # 创建配置对象 + config = uvicorn.Config( + "main:app", + host="0.0.0.0", + port=8000, + loop="asyncio", # 强制使用 asyncio 事件循环 + # workers=4, # 如果需要多进程,可以取消注释 + ) + server = uvicorn.Server(config) + + # 创建并设置事件循环 + if sys.platform == "win32": + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + + # 运行服务器 + asyncio.run(server.serve())