私は大量のディレクトリリストを読み込むスクリプトを持っており、(その性質上)読み込みに時間がかかります。私はスクリプトのタイムアウトを経験するケースがいくつかあり、スクリプトがタイムアウトしないように私のようなものを使うことができるのか、状況を悪化させるだけなのか不思議でした。PHPのスクリプトタイムアウトを防ぐためのusleep
0
A
答えて
1
PHPは、すでにのようなものを使用しているので、もし長い時間のために存在しないファイル/ディレクトリを探すために試みることができます。
if ((is_dir($path) || file_exists($path)) && ($dh = opendir($path)))
{
while(($file = readdir($dh)) !== false)
{
.. file or dir is found, do stuff :)
}
closedir($dh);
}
私は言葉を言ったが、あればしていません
$dh = opendir($path);
スクリプトがタイムアウトするまでに数分かかることがありますが、何もしません。
3
set_time_limit()でタイムアウト制限を設定することはできませんか?
0に設定すると、スクリプトは永遠に実行されます。
set_time_limit(0);
Usleep()は、指定された時間内にPHPスクリプトの実行を停止します。その時あなたのスクリプトはディレクトリなどをリストしません。続行が許可されるまで、スクリプトをフリーズします。
0
あなたはset_time_limit
を試すか、あなたのコードを最適化することができるかどうかを確認することができます
- リストが背景とRESULTS.TXTファイルにコピーし、それをで起動するようにシステムに
ls -l > results.txt &
を実行します。 - サブディレクトリ
1
を使用して、ディレクトリ内のファイルの量を減らし、あなたはディレクトリのリストを生成するためのRecursiveDirectoryIteratorを使用してみましたか?
私は再帰関数を使用してディレクトリリストを生成していました。これは、大量のファイルをより深いレベルで処理しなければならないときに誤ってスクリプトのタイムアウトを引き起こします。 RecursiveDirectoryIteratorを使用して私の多くの問題を解決しました。
関連する問題
- 1. PHPスクリプトタイムアウトのデバッグ?
- 2. A PHPのSQLインジェクションを防ぐための機能とXSS
- 3. PHP/ajaxcall - 乱用や直接アクセスを防ぐためのアプローチ
- 4. APMでスタックオーバーフローを防ぐため
- 5. PHPが小数を丸めるのを防ぐ
- 6. PHPウェブ連絡フォームのスパムを防ぐ
- 7. PHP get型のオーバーライドを防ぐ方法
- 8. php:フォームの再サブミットを防ぐ
- 9. fを防ぐためにPHPとmySqlのアクセスを保護する方法は?
- 10. PHPセッションのハイジャックを防ぐためにユーザーエージェントとIPを確認する
- 11. がデータベースに入力同じデータにユーザーを防ぐため、ユーザーを防ぐために(アンドロイド)
- 12. 重複した行を防ぐためのMySQLの制約/トリガ?
- 13. 丸めからの応答を防ぐ
- 14. 追加されたイベントハンドルによるメモリリークを防ぐための予防策
- 15. サファリのためのJavaScriptを開発中 - 死のボールを防ぐ
- 16. PHPのsleep()とusleep()の違い
- 17. 重複したエントリを防ぐためのDatagrid検証
- 18. タイピングエラーを防ぐための短いコードのチェックサムの選択
- 19. 他のボタンの重なりを防ぐためのドロップダウンメニュータイトル
- 20. 負の値を防ぐためのfirebaseデータベースルールの使用
- 21. 2番目のインスタンスを防ぐためのC#ミューテックスの問題
- 22. ブラウザのJavaScriptキャッシングの問題を防ぐためのベストプラクティス
- 23. アプリケーションの中断を防ぐためのjavascriptプロパティのチェック
- 24. TextMode = "Date"の空のテキストボックスを防ぐためのバリデータ
- 25. Spidermonkeyのスクリプトタイムアウト
- 26. PHPとPDOで重複を防ぐために例外を作成する
- 27. 漏れを防ぐためのバレーノートの注釈
- 28. オーバーラップを防ぐためのタイマーの同期
- 29. 印刷の文章を防ぐための自己スキャンコード
- 30. 冗長+同一のeコマース注文を防ぐためのページデザイン
私たちはどのようにして実行タイムアウトを防止できますか? – MatTheCat
出力を生成していますか?場合によっては、クライアントに出力を送信せずに長時間実行していた場合、apacheはアクティブなリクエストを終了させることがあります。 –
リクエストごとにディレクトリ一覧を読み込む必要がありますか?代わりにファイルリストをキャッシュする定期的なタスクを実行できますか? –