在这个示例Starlette应用程序中有一个打开的websocket连接,如何关闭Starlette应用程序?我在乌维科恩跑步。每当我按Ctrl+C
时,输出是Waiting for background tasks to complete.
,它永远挂起。在
from starlette.applications import Starlette
app = Starlette()
@app.websocket_route('/ws')
async def ws(websocket):
await websocket.accept()
while True:
# How to interrupt this while loop on the shutdown event?
await asyncio.sleep(0.1)
await websocket.close()
我尝试在shutdown事件上切换bool变量,但该变量从未更新。它总是False
。在
例如
^{pr2}$
我真的不能重现这个问题,我明白
但我在自己的异步应用程序中优雅地关闭的是:
^{pr2}$您可能需要将
await websocket.close()
移到shutdown
方法中。在相关问题 更多 >
编程相关推荐