2017-07-05 13 views
2

環境になります。php + nginx; 私はPHPExcelをエクスポートとインポートのExcelファイルに使用しています。この操作では、大きなデータサイズの場合約2分かかるため、ゲートウェイタイムアウトが504になります。 nginx factcgi_connect/read/send_timeoutは30秒です。 nginxの設定を変更しないでください。どうすればいいですか?PHPExcelを使用してExcelファイルをエクスポートすると約2分かかり、504

答えて

1

ファイル生成プロセスを「オフライン」バッチモードで実行します。 PayPalはいくつかのレポートでこれを行います。レポートをリクエストし、処理中であることを即座に通知し、完了したら(通常は数秒ですがそれ以上長くなる可能性があります)、ステータスページが更新され、通知メールが届きます。基本手順:

  1. 処理するレポートの新しいテーブルを作成します。
  2. ユーザーがレポートを要求したときに、「新しい」ステータスを追加します。
  3. ステータスを「処理中」に変更する新しいプロセスをcronjob(5分ごとなど)として追加し、レポートを作成してからステータスを「完了」に変更し、レポートをアクセス可能な場所(レポートテーブルレコードIDに基づくファイル名など)に保存します。
  4. ステータスページを追加して、レポートのステータスを表示します。 。

これはちょっとした作業ですが、コマンドラインからもウェブプロセスでも同じコードを実行できるため、PHPは簡単です。

関連する問題