监视作业中的gevent异常

2024-04-28 16:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用gevent构建一个应用程序。我的应用程序现在变得相当大了,因为有很多工作正在产生和破坏。现在我注意到,当其中一个作业崩溃时,我的整个应用程序只会继续运行(如果异常来自非主greenlet),这很好。但问题是,我必须查看我的控制台才能看到错误。因此,我的应用程序的某些部分可能会“死亡”,而我并没有立即意识到这一点,应用程序继续运行。

用try-catch的东西让我的应用程序紧张似乎不是一个干净的解决方案。 可能是一个自定义的生成函数,它会报告一些错误?

监控gevent作业/greenlet的正确方法是什么?捕捉异常?

在我的例子中,我听一些不同来源的事件,我应该处理每个不同的事件。 有5个工作非常重要。网络服务器greenlet,websocket greenlet, 数据库greenlet、警报greenlet和zmq greenlet。如果其中任何一个“死”了,我的申请就应该彻底死了。其他死亡的工作没那么重要。例如,websocket greenlet可能由于引发了一些异常而死掉,而其余的应用程序继续正常运行,就像什么都没发生一样。它现在完全没用了,而且很危险,应该会摔得很重。


Tags: 方法函数应用程序报告错误作业事件gevent