FastAPI集成WebSocket后无法通过Ctrl+C终止应用的问题求助
FastAPI集成WebSocket后无法通过Ctrl+C终止应用的问题求助
大家好,我最近碰到个棘手的问题,想请教下社区里的各位大佬。
我维护着一个FastAPI应用,里面已经有不少HTTP路由了,前阵子新增了一个WebSocket聊天功能,路由代码大概是这样的:
@router.websocket("/chat/{room_id}/") async def websocket_execute(websocket: WebSocket) -> None: await websocket.accept() try: while True: data = await websocket.receive_text() except WebSocketDisconnect: # 这里写了断开后的一些处理逻辑 ...
这个WebSocket功能本身跑起来是正常的,但现在有个很麻烦的问题:只要有活跃的WebSocket连接存在,我用Ctrl+C想要终止应用完全没反应,只能靠kill -9强制杀掉进程才行。但如果是只有HTTP路由在运行的情况,Ctrl+C是能正常终止应用的。
有没有朋友遇到过类似的情况呀?或者能帮我分析下原因,给个解决思路吗?
内容来源于stack exchange
相关产品推荐
相关产品推荐

