gevent を使用してアプリケーションを作成しています。多くのジョブが生成および破棄されているため、私のアプリはかなり大きくなっています。これらのジョブの 1 つがクラッシュしても、アプリケーション全体が実行され続けることに気付きました (例外がメイン以外のグリーンレットから発生した場合)。これは問題ありません。しかし問題は、エラーを確認するためにコンソールを見なければならないことです。そのため、アプリケーションの一部が「死ぬ」可能性があり、すぐにそれを認識せず、アプリは実行され続けます。
私のアプリをtry catchのもので揺さぶるのは、きれいな解決策ではないようです。たぶん、いくつかのエラー報告を行うカスタム spawn 関数でしょうか?
geventジョブ/グリーンレットを監視する適切な方法は何ですか? 例外をキャッチしますか?
私の場合、いくつかの異なるソースのイベントをリッスンし、それぞれに対処する必要があります。非常に重要な仕事が5つほどあります。Web サーバー グリーンレット、Websocket グリーンレット、データベース グリーンレット、アラーム グリーンレット、および zmq グリーンレット。それらのいずれかが「死ぬ」場合、私のアプリケーションは完全に死ぬはずです。死ぬ他の仕事はそれほど重要ではありません。たとえば、何らかの例外が発生したために websocket greenlet が停止し、残りのアプリケーションが何事もなかったかのように正常に動作し続ける可能性があります。今では完全に役に立たず危険であり、激しくクラッシュするはずです.