2016-11-28 9 views
0

私は、PHPフレームワークのCodeIgniterで書かれたアプリケーションを持っています。コントローラの1つは比較的大きなファイルを読み取る関数を実行し、次に行単位でデータベースへの情報の挿入/更新を開始します。それはもちろん、サーバーからタイムアウトを得るためには少し時間がかかります。私はlocalhostでバックグラウンドでタスクを実行して、504ゲートウェイのタイムアウトを防ぎます

私は呼び出すことで、この問題を回避できます。

set_time_limit(0); 

しかし、本番サーバーは、(私は推測)かなり異なっているので、でもこのコードで、私はそこにエラーになるだろう:

504ゲートウェイタイムアウトnginxの/ 1.8.0

さらに悪いことに、私はすべて増加することはできませんので、私は、サーバーの設定にアクセスすることはできません。どちらがトラブルの原因になっているのか分かりましたが、サーバーのタイムアウトの値。代わりに私の質問は、ブラウザを開いたり、これが起きている間に何もしなくても、バックグラウンドでこのタスクを実行するようにPHPに指示することができます。将来は?

+0

ゲートウェイリクエストに対してtry catchを実行できますか?準備ができていない場合は、中断した場所で別のリクエストを送信しますか? – atoms

答えて

-1

PHPの実行時間を増やすには、ウェブルートの.user.iniファイルを使用して、サーバーのグローバルphp.ini設定を上書きできます。要求は、PHPから成功応答で応答nginxのあなたにできる受信とnginxの接続を閉じている

http://www.php.net/manual/en/configuration.file.per-user.php

そして、nginxのため

、。

関連する問題