Tôi hiện đang chuyển một dự án Python từ Linux sang Windows (sử dụng Anaconda Python 3.6). Tất cả mọi thứ hoạt động hoàn hảo, tôi chỉ không thể có được một lối ra duyên dáng của vòng lặp asyncio làm việc.add_signal_handler của asyncio loop() trong Windows
Trong Linux Tôi đang làm như sau:
class GracefulExit(SystemExit):
code = 1
def raise_graceful_exit():
raise GracefulExit()
loop = asyncio.get_event_loop()
loop.add_signal_handler(signal.SIGINT, raise_graceful_exit)
loop.add_signal_handler(signal.SIGTERM, raise_graceful_exit)
try:
loop.run_forever()
except GracefulExit:
pass
shutdown()
Trong Windows, tiếc là tôi có được một NotImplementedError
trên add_signal_handler
. Nếu không có điều này, tất nhiên tôi không bao giờ có cơ hội để tắt chương trình.
Bất kỳ ý tưởng nào về cách giải quyết vấn đề này? Cảm ơn.
Xem [issue 23057] (http://bugs.python.org/issue23057). – eryksun