1

とを使用して無限にループするように構成されたPHPスクリプトがset_time_limit(0)ありますfor(;;)。スクリプトは、特定のディレクトリをリッスンしてファイルを待機するようにコーディングされています。ファイルが検出されたら、いくつかのコマンドを実行してループを続行します。これまでのところ、これは私のニーズに対して非常に成功していますが、懸念があります。

PHPで無限ループを作成することのパフォーマンス上の欠点はありますか?このスクリプトの実行が停止しないようにサーバーを構成するにはどうすればよいですか?または、実行が停止したときにアラートを表示しますか?起動時にも起動してほしいです。SUSESLES10ボックスを持っています。

for (;;) {
    // Check for empty directory
    if (isEmptyDir($finishedDir)) {         
        // If so, move on
        continue;
    } else {
       // do stuff.
    }
}
4

2 に答える 2

1

これはうまくいくかもしれませんが、PHP はこの種のデーモンのような仕事のために実際には設計されていません。Linux/Unix にはinotify、より優れたパフォーマンスが保証され、変更イベントが発生したときに PHP スクリプトをトリガーできる、オーダーメイドのツールがあります。

この SO の質問を参照してください:ディレクトリの変更を監視する

于 2013-03-15T19:46:57.233 に答える
0

ファイルへのアクセスはメモリへのアクセスよりもコストがかかるため、ファイルを使用する代わりにメモリ(memcached、apcなど)を使用することを検討してください。sleep()そして、時間間隔を追加するために少しsを使用することを検討してください。

于 2013-03-15T19:50:31.920 に答える