zoukankan      html  css  js  c++  java
  • 优雅的退出asyncio事件循环

    import asyncio
    import functools
    import os
    import signal
    
    """
    信号值      符号      行为
    
    2          SIGINT    进程终端,CTRL+C
    
    9          SIGKILL   强制终端
    
    15         SIGTEM    请求中断
    
    20         SIGTOP    停止(挂起)进程 CRTL+D
    """
    
    
    def exit(sign_name):
        print(f"获取信号{sign_name}: exit")
        loop.stop()
    
    
    loop = asyncio.get_event_loop()
    for sign_name in ('SIGINT', 'SIGTERM'):
        loop.add_signal_handler(getattr(signal, sign_name),
                                functools.partial(exit, sign_name))
    
    print(" Ctrl+C 停止运行.")
    print(f"pid {os.getpid()}: 发送 SIGINT 和 SIGTERM 信号退出循环")
    try:
        loop.run_forever()
    finally:
        loop.close()
    

      

  • 相关阅读:
    D3 data
    cubism.js
    git
    Render函数
    Vue 响应式原理
    JSSDK使用步骤
    用js获取access_token
    微信公众平台appid和appsecret在哪
    组件
    表单控件绑定
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10914179.html
Copyright © 2011-2022 走看看