私は、PHPフレームワークのCodeIgniterで書かれたアプリケーションを持っています。コントローラの1つは比較的大きなファイルを読み取る関数を実行し、次に行単位でデータベースへの情報の挿入/更新を開始します。それはもちろん、サーバーからタイムアウトを得るためには少し時間がかかります。私はlocalhostでバックグラウンドでタスクを実行して、504ゲートウェイのタイムアウトを防ぎます
私は呼び出すことで、この問題を回避できます。
set_time_limit(0);
しかし、本番サーバーは、(私は推測)かなり異なっているので、でもこのコードで、私はそこにエラーになるだろう:
504ゲートウェイタイムアウトnginxの/ 1.8.0
さらに悪いことに、私はすべて増加することはできませんので、私は、サーバーの設定にアクセスすることはできません。どちらがトラブルの原因になっているのか分かりましたが、サーバーのタイムアウトの値。代わりに私の質問は、ブラウザを開いたり、これが起きている間に何もしなくても、バックグラウンドでこのタスクを実行するようにPHPに指示することができます。将来は?
ゲートウェイリクエストに対してtry catchを実行できますか?準備ができていない場合は、中断した場所で別のリクエストを送信しますか? – atoms