Avatar ·

asyncio: अपने कोरआउटीन को सही ढंग से रोकना

📁 पायथन, प्रश्न, त्रुटि, उदाहरण, पायथन3, asyncio: एसिंक्रोनस प्रोग्रामिंग, वेब, एआई, खेल

मैं फिर से उसी समस्या का सामना कर रहा हूँ। पहले सभी tasks मेरे नियंत्रण में थे, और मैं उन्हें मैन्युअल रूप से बंद कर सकता था। लेकिन समस्या यह है: मुझे यहाँ 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: