私は開発に時間がかかる、開発しているワードプレス用の関数を持っています。 TMDb(ムービーデータベース)に接続し、すべてのムービーを1つずつid(0〜8000)で取得し、ローカルサーバーに保存されているXMLドキュメントを作成します。 もちろん、時間がかかり、PHPは "504 Gateway Time-out"と言っています。サーバは時間内に応答しませんでした。スクリプトでのPHPサーバのタイムアウト
私は何ができますか?任意のsugestions!
私は開発に時間がかかる、開発しているワードプレス用の関数を持っています。 TMDb(ムービーデータベース)に接続し、すべてのムービーを1つずつid(0〜8000)で取得し、ローカルサーバーに保存されているXMLドキュメントを作成します。 もちろん、時間がかかり、PHPは "504 Gateway Time-out"と言っています。サーバは時間内に応答しませんでした。スクリプトでのPHPサーバのタイムアウト
私は何ができますか?任意のsugestions!
1回限りの実行であり、あなたに爆撃があるとすれば、set_time_limit
を0にして実行させることができます。
<?php
set_time_limit(0); // impose no limit
?>
しかし、私は、これが生産されていないことを確認します、それはあなただけに(そうでない場合は、これが配置(および配置していきます)サーバーに大きな負荷を)それをしたい時に実行されます。
set_time_limit(0);
スクリプトの先頭に:
これはスクリプトのタイムアウトには関係しないと思います。
504-ゲートウェイタイムアウトの問題は、バックエンドコンピュータ間のIP通信が遅いことが原因で、Webサーバーを含む可能性があります。
修正: プロキシを使用するか、キャッシュサイズを増やしてください(php.iniで「キャッシュ」を検索してそれを使用してください)。
ドット
ほとんどのサーバーがセーフモードで実行されているため、制限時間を設定できません。私はそれをコード化するいくつかのスマートな方法を探しています、私はPHPで、ほとんど私はアドバイスを探していますthatsの新しいです。このプラグインのスクリプトはdbとの同期のためにちょうど1回実行されます! – Max
@Max:もう一つの選択肢は、ロード中にコンテンツを出力して、「デッド接続」ではないことです。非常に多くの読み込みのたびに、 'echo 'Working ...'を実行できます。 flush();これは完了するまでリスニングクライアントにデータをプッシュし続けます。 –
ありがとうございます! 'フラッシング'するときにキャッシュや何かをクリーニングしていますか?保存されていないXML文書が失われますか?私はプロセスを実行できる時間を延長するのだろうか? – Max