Pycharm debug模式异常
https://gitee.com/aohanhongzhi/xianyu-auto-reply/issues/ID3UXR
This commit is contained in:
parent
9e7d5f0d7a
commit
cd502a2e2e
32
Start.py
32
Start.py
@ -143,7 +143,23 @@ def _start_api_server():
|
||||
port = parsed.port or 8080
|
||||
|
||||
logger.info(f"启动Web服务器: http://{host}:{port}")
|
||||
uvicorn.run("reply_server:app", host=host, port=port, log_level="info")
|
||||
# 在后台线程中创建独立事件循环并直接运行 server.serve()
|
||||
import uvicorn
|
||||
try:
|
||||
config = uvicorn.Config("reply_server:app", host=host, port=port, log_level="info")
|
||||
server = uvicorn.Server(config)
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
loop.run_until_complete(server.serve())
|
||||
except Exception as e:
|
||||
logger.error(f"uvicorn服务器启动失败: {e}")
|
||||
try:
|
||||
# 确保线程内事件循环被正确关闭
|
||||
loop = asyncio.get_event_loop()
|
||||
if loop.is_running():
|
||||
loop.stop()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@ -248,4 +264,16 @@ async def main():
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
# 避免使用被monkey patch的asyncio.run()
|
||||
# 使用原生的事件循环管理方式
|
||||
try:
|
||||
loop = asyncio.get_event_loop()
|
||||
if loop.is_running():
|
||||
# 如果事件循环已经在运行,创建任务
|
||||
asyncio.create_task(main())
|
||||
else:
|
||||
# 正常启动事件循环
|
||||
loop.run_until_complete(main())
|
||||
except RuntimeError:
|
||||
# 如果没有事件循环,创建一个新的
|
||||
asyncio.run(main())
|
||||
Loading…
Reference in New Issue
Block a user