2016-11-02 5 views
0

私は、関連する実行時間の制限がないフォルダ(このディレクトリから1時間のスクリプトを定期的に実行する)にファイルがあるフォルダにスクリプトを持っています。このファイルは、codeingiterビューのHTMLフォームから呼び出され、csvファイルをアップロードし、読み取って、そこに含まれる情報でデータベースエントリを更新します。PHP実行中に404が投げられる(約45秒後)

私は小さいcsvファイル(1〜1000エントリ)を持っていればうまくいきます。それ以上のものは、(画面にデバッグテキストをエコーすることを含めて)約1000項目を処理し、その後、404エラーを投げます。

投稿ページをajax呼び出しにすることでエラーを回避しようとしていますが、まったく同じことです。

「NetworkError:404は見つかりません - XXXX/XXXX/xxxxx.php」

私は、データベース内の変更を確認し、上echo'dデバッグコードを見てスクリプトが前404に実行されていることを確認しています画面。

それは404 ... (要するに、CSVファイルから)値(第2の列を有するようにID(最初の列)を更新をスローしたときに実行されるコード。

if(file_exists($targetdir)) 
{ 
$file = fopen($targetdir, 'r'); 
$count = 0; 
while(!feof($file)) 
{ 
    $x = (fgetcsv($file)); 
    if(is_numeric($x[1]) && $x[1] > 9999 && $x[0] != '-') 
    { 
     $count++; 
     // echo "UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1]; 
     $db->query("UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1]); 
     //echo $x[1].' - '.$x[0]."<br/>"; 

    } 
} 
fclose($file); 
} 

編集 それグーグルがエラーを投げているように見えますか?私は周りを見つめて、人々がサーバー設定だと言っているのを見ました(しかし、サーバーの設定ではないので、最大実行時間を300秒に設定して同じ結果を得ます)。

xxxxx.php 404 xhr jquery-1.12.4.min.js:4 1.6 KB 40.07

Image of 404 rendering after text is echo'd

+2

私はそれがPHPコードだとは思わない。サーバーの設定を確認する必要があります。あなたが明示的に指示しない限り、PHPスクリプトは404を無作為に破棄しません。サーバが実行時間の制限を超えて終了する可能性がありますが、なぜそれが404として表示されるのかはわかりません。 –

+0

これが起こったときにThe Twilight Zoneのテーマが聞こえますか?サーバーが誤って構成されている可能性があります.408を送信する必要がある場合は404が表示されます。 –

+0

私は今それを検討していますが、実行する他のスクリプトと比較して短い時間で408を投げますか?私は問題なしで約1時間実行するいくつかのスクリプトと比較して1分で話しています... ありがとう! –

答えて

0

私はトリップた設定を見つけることができました。 標準のphp max実行時間を使用するのではなく、FastCGI設定からタイムアウトが発生していました。 AJAXの投稿または読み取り操作のいずれか。

いずれにせよ、私はサーバーの私のApache設定でFcgidIOTimeoutを増やし、完全なスクリプトを実行することができました。

関連する問題