2016-09-20 14 views
1

私は巨大なファイルをインポートして処理するcronジョブを持っています。インポートプロセスには多くの時間がかかりますが、600秒後にスクリプトを実行しているサーバがcronジョブをタイムアウトさせます。サーバー技術者と話した後、彼は、スクリプトが10分後に中断しないように、インポートの過程で出力何かが必要であると私に言った。PHPの別のプロセスで何かを5分ごとに出力する方法はありますか?

ここで質問します。ファイルをインポートする関数import()があるとします(この関数の実行には約20分かかります)。どのような方法でも同時にecho出力がありますか?または、PHPコードが常に順番に処理されるため、これは不可能ですか?

+0

ファイルをインポートHWOに依存します。いくつかのサンプルコードを表示 – RiggsFolly

+1

最大実行時間を単に上げることはできませんか? (例えば、ini_set( 'max_execution_time'、3000)) – Alex

答えて

1

反復処理の場合は、変数$last_echotime()の値に設定できます。 次に、各繰り返しで、time() - $last_echo > 300をチェックします。

例:

$last_echo = time(); 
while (true) { 
    //Do process 
    if (time() - $last_echo > 300) { 
    echo '.'; 
    } 
} 
+0

私はcronがコンソールに出力の電子メールを送ると思っていました。 – RiggsFolly

+0

あなたはログに出力することができますが、デフォルトであなたに電子メールで送信されることはありません。 'max_execution_time'を' 3600'と言うこともできます。修正かもしれない。 –

+0

あなたのコメントをお寄せいただきありがとうございますが、私はさまざまな修正手法を試しましたが、何も変更していないようです。 @RiggsFolly明らかに、出力はログファイルに直接入力する必要はありません。 – phpheini

関連する問題