1

我通过继承来创建任务Greenlet。我有一个单亲任务,start()它在其_run(). 在其他地方(它恰好是一个 systemd 服务)start()并被join()调用。

这种行为似乎是正确的。例如,使用Queue带有超时的 a 可以达到预期的效果,但我还没有找到一种很好的方法来关闭子进程,KeyboardInterrupt或者注册一个回调到父任务的SIGTERM. 在处理程序中,我会调用child1.kill()“child2.kill() but only the first called seemed to raiseGreenletExit”。

我从不拜访join()孩子们,我不确定我会如何正确地做到这一点。我在滥用图书馆吗?

4

1 回答 1

0

我的错误是我正在处理gevent.greenlet.GreenletExit子任务。如果您需要处理退出,您可以捕获并重新引发此异常。

于 2016-10-23T22:45:37.980 回答