asyncio: arrêt correct des coroutines qui ne sont pas les vôtres
📁 Sujets avancés sur Python, Question simple de débutant, erreur, exemple, Versions de Python : discussions sur Python 3.x, asyncio : programmation asynchrone en Python, Développement web (Django, Flask, FastAPI), IA, jeu
Je suis de nouveau avec le même problème. Dans asyncio, toutes les tâches étaient sous mon contrôle, et je pouvais les fermer manuellement. Mais voilà le problème : j'ai eu besoin de websockets. Dans les exemples de websockets, aucune fermeture correcte n'est effectuée :
start_server = websockets.serve(hello, 'localhost', 8765)asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()J'ai joué avec les exemples, et oui, avec Ctrl+C, ça génère une erreur s'il y a un client connecté :
$ 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:
No answers yet.
Connectez-vous pour laisser une réponse
Blogs