In a gevent application, how can I kill all greenlets that have been started?

后端 未结 2 1884
渐次进展
渐次进展 2021-02-04 08:19

I have a gevent application that spawns multiple greenlets across multiple modules. I want to be able to gracefully shutdown the application (either internally or by catching

2条回答
  •  [愿得一人]
    2021-02-04 09:12

    According to another SO answer, it's possible "to iterate through all the objects on the heap and search for greenlets." So, I imagine this ought to work:

    import gc
    import gevent
    from greenlet import greenlet    
    gevent.killall([obj for obj in gc.get_objects() if isinstance(obj, greenlet)])
    

提交回复
热议问题