1

ここに示すように、ループを実行するPHPスクリプトを作成しています。ループ内には、情報を処理する特定の関数があります。

while (some condition){
    // some code
    processInformation();
    // Some more code
}

途中で、processInformation() 内で、Fatal error: Maximum execution time of 30 seconds exceeded というエラーが発生しました。set_time_limit(0) を使用しても、processInformation() には永遠にかかる可能性があるため、私の状況では役に立ちません。エラーでプログラムを完全に壊したくないので、例外をキャッチしたり、processInformation() に時間がかかりすぎる場合にループを「続行」するように php に指示したりできますか?

4

2 に答える 2

1

最大実行時間の値を 30 秒から任意の値に増やすことができます。例: 最大実行時間の制限を (30 秒ではなく) 3 分に設定する場合は、次のように設定できます。

ini_set('max_execution_time', 180); //maximum execution time of 3 minutes

このように、必要に応じて時間を設定できます。

于 2012-11-05T08:53:41.317 に答える
0

例外をキャッチする方法はわかりませんが、単純な時間計算を使用して、たとえば 60 秒後にエスケープできます。()

$x=時間();
while (何らかの条件){

    processInformation();

    if ($x + 60) < time() 
    break;

}
于 2012-08-15T04:13:57.923 に答える