2016-03-21 4 views
-2

私はソフトウェアのドキュメントコントロールビークルを開発しています。PHP 504で長いforeachが発生する

ソフトウェアを使用するすべての企業のレポートを生成し、運転を許可するかどうかを判断する必要があります。車両用

はパーミッション、10個の以上の文書が有効期限、紙の株式などで、制御されている

レポートでは、このようになります。

会社1: -Vehicle 1 -Vehicle 2 -Vehicle 3 -....

しっかり2 -Vehicle 232 -Vehicle 456

-....

私は車ごとにforeachを行い、ドキュメントごとにforeachを行います。

コントロールの種類は、MySQLの単一のクエリですべてを行うことは不可能です。

私の問題は、いつもnginxが私に "504 Gateway Time-out"を投げつけてしまうことです。

サーバー側のスクリプトをバックグラウンドで実行していたかのように実行し、完了したらファイルをサーバーに保存し、ユーザーに電子メールで通知する方法があるのだろうかと思います。

CRONSがその更新データを実行する他のいくつかのプロジェクトでこの問題が発生しています。また、データの量が非常に多い場合は、終了する前に常にスクリートが停止します。 サーバはnginx/1.4.6(Ubuntu)です。私はmax_execution_timeを増やしたくありません。ユーザー・アボートを無視

+0

nginxのvhostの設定で、特定のファイルをより高速に(+予備のビットが必要な場合のみ)設定することができます。 –

答えて

0

はあなたを助けるかもしれない - http://php.net/manual/en/function.ignore-user-abort.php

をしかし、私はforeachループを排除するためのプロセスを見直すだろうか、ちょうど小さなチャンクにプロセスを分割し、一度に1つのチャンクを行うためにcronジョブを設定。

関連する問題