我目前正在将一个Python项目从Linux移植到Windows(使用Anaconda Python 3.6)。一切都工作得很完美,只是我无法让asyncio循环优雅地退出。
在Linux中,我正在执行以下操作:
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()
在Windows中,不幸的是我遇到了add_signal_handler
的NotImplementedError
错误。如果没有这个功能,当然我就永远没有机会对程序进行干净的关闭。
有什么解决方法吗?谢谢。