asyncio: إيقاف غير coroutines الخاصة بك بشكل صحيح
📁 بايثون, سؤال, خطأ, مثال, بايثون 3, asyncio: مكتبة البرمجة غير المتزامنة في بايثون, ويب, ذكاء اصطناعي, لعبة
أنا مرة أخرى مع نفس المشكلة. في السابق، كانت جميع المهام تحت سيطرتي، وكنت قادرًا على إغلاقها يدويًا. ولكن المشكلة أنني احتجت هنا إلى websockets. في الأمثلة، لا يتم إجراء أي إغلاق صحيح:
start_server = websockets.serve(hello, 'localhost', 8765)asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()لقد جربت الأمثلة، ونعم، عند الضغط على Ctrl+C يظهر خطأ إذا كان هناك عميل متصل:
$ 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: