私は、それがX秒以上アクティブだった場合にスレッドを殺す良いタイムアウトスクリプトの場所を探してきましたが、私が見たすべての例では常に停止しない脆弱性がありますスレッド。 thread.join(x)を使用すると、そのスレッドの目的を破ることになります。Pythonタイムアウト
私が見つけた唯一のまともな例はTimeout on a function callで、もう1つは...その欠陥がないわけではないということ
誰もがこれを行うには良い方法を知っていますか?
私は、それがX秒以上アクティブだった場合にスレッドを殺す良いタイムアウトスクリプトの場所を探してきましたが、私が見たすべての例では常に停止しない脆弱性がありますスレッド。 thread.join(x)を使用すると、そのスレッドの目的を破ることになります。Pythonタイムアウト
私が見つけた唯一のまともな例はTimeout on a function callで、もう1つは...その欠陥がないわけではないということ
誰もがこれを行うには良い方法を知っていますか?
これはあなたが望むものではないかもしれないが、シグナルのアプローチを考えたことはありますか? Timeout on a function call http://docs.python.org/library/signal.html#example
あなたは、スレッドの実行の開始時にアラーム信号を設定し、シグナルハンドラ内でスレッドを停止することができます。
>このモジュールはスレッドでうまく動作しません(しかし、それは誰ですか?) – Dave
私の答えを参照してくださいpython: how to send packets in multi thread and then the thread kill itself - タイムアウト後に別のスレッドを殺すInterruptableThreadクラスとサンプルの断片があります。
また、類似体Python recipeが活性型で存在する。
Pythonの人々は、通常、共有メモリに書き込む可能性のあるものを殺すのは悪い考えであるため、この作業を難しくしました。スレッドの代わりにプロセスを使用できますか? – Dave
この場合、mod_wsgiスクリプトのためです。だから、それはもっと終わりの事です。スクリプトが制限時間を過ぎると、スレッド全体を強制終了して終了するので、共有メモリを破壊する可能性がある大きな問題ではありません。 – Ian
デーモンモードまたは組み込みモードで実行していますか? – Dave