ホームページ >バックエンド開発 >Python チュートリアル >タイムアウトによる Python 関数の無期限停止を防ぐにはどうすればよいですか?
関数呼び出しのタイムアウト
スクリプトの実行を無期限に停止する可能性のある関数を Python で呼び出す場合、次のメカニズムを確立する必要があります。それを防ぎます。解決策は、スクリプトが介入して関数を終了するタイムアウトしきい値を設定することです。
Signal パッケージの使用
UNIX ベースのシステムの場合、signal パッケージ堅牢なソリューションを提供します。これを利用するには:
これは具体的な例です:
import signal # Handler function def handler(signum, frame): print("Timeout reached!") raise Exception("Timeout exception") # Function that may stall indefinitely def loop_forever(): while True: print("Looping") # Pause execution for 1 second time.sleep(1) # Set timeout to 5 seconds signal.alarm(5) signal.signal(signal.SIGALRM, handler) try: loop_forever() except Exception as exc: print("Exception:", exc)
関数loop_forever()が5以内に完了しなかった場合秒経過すると、ハンドラー関数が呼び出され、タイムアウト例外が発生してプロセスが終了します。
以上がタイムアウトによる Python 関数の無期限停止を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。