为了账号安全,请及时绑定邮箱和手机立即绑定

python asyncio - ctrl+c 上的清理事件循环?

python asyncio - ctrl+c 上的清理事件循环?

慕容森 2021-09-25 16:44:08
代码:loop = asyncio.get_event_loop()# add tasks to the loop# ...# and then run the looptry:   loop.run_forever()except KeyboardInterrupt:   print(loop)   # Here I need to run a cleanup, I still need to use the event loop   # Can I still use the event loop here? like:   loop.run_until_complete(some_cleanup_coro())当我在except块中打印事件循环时,我看到输出:WindowsSelectorEventLoop, with closed=False, 这running=False. 是否意味着我不能在except块中使用事件循环?那么我该如何运行清理协程呢?该run_until_complete呼叫挂起并没有运行。所以按下ctrl+c不会退出,我必须关闭终端本身。loop.close()和之间有什么区别loop.stop(),我应该叫它们吗?文档没有提及loop.stop().我的cleanup_coro()主要asyncio.open_connection(..)是发送和接收一条消息。(据我所知,根本没有发送消息)。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信