2010-11-28 13 views
2

ここにシナリオがあります: 私はAJAXのブラウザから呼び出されるPythonスクリプトを持っています。私はPythonスクリプトを実行してその出力を返しますが、10秒で正常に実行できない場合は、スクリプトを中断して他のプロセスを返すようにします。また、当初は、リクエストの内容を記録したいと思います。特定の時間に終了しない場合、Pythonプロセスを終了しますか?

私はそれをどのように構築するか考えています: Commanderスクリプト サブプロセスとして生成された3つのスクリプトを呼び出しますか? 1.実行してその結果を返すメインコード 2. 10秒待ってからFalseを返す2番目のスクリプト 3.リクエストをデータベースに記録する第3のスクリプト コマンドスクリプトは、結果(1)から、(2)から戻ってくるとエラーになります。

これは実際にどのように実装しますか?スレッド化ライブラリやosライブラリをサブプロセスで使用すべきかどうかはわかりません。

これを行うには良い方法がありますか?

答えて

0

I、高度のPythonのmultiprocessingライブラリを使用してsugges。それはprocess.terminate()メソッドを持っています。

1

このスクリプトがUNIX系のシステムで実行されている場合は、SIGALRMを使用して実行できます。 python docsに例があります。

0

チェックアウト: subprocess.Popen.pollsubprocess.Popen.terminate

+0

Python 2を使用している場合、リンクされたメソッドのバージョンに 'timeout'パラメータでアクセスするには[' subprocess32'](https://github.com/google/python-subprocess32)をチェックしてください - it Python 3.3、IIRCで追加されました。 –

関連する問題