asyncio: parada correta de corrotinas que não são suas
📁 python, pergunta, erro, exemplo, Versões do Python, asyncio: Programação Assíncrona, Tags por tema: web (Django, Flask, FastAPI), IA, jogo
Estou com o mesmo problema novamente. Em , todas as tasks estavam sob meu controle e eu podia fechá-las manualmente. Mas eis o problema: precisei de websockets. Nos exemplos em , nenhum fechamento correto é feito:
start_server = websockets.serve(hello, 'localhost', 8765)asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()Testei com exemplos e, sim, ao pressionar Ctrl+C, ele reclama se houver um cliente conectado:
$ python websocket_server.py ^CKeyboardInterruptException ignored in: Task was destroyed but it is pending!task: <Task pending coro=<run() running at websockets/protocol.py:235> wait_for=<Future pending cb=[Task._wakeup()]> cb=[_wait.<locals>._on_completion() at asyncio/tasks.py: