2012-02-09 30 views
0

私は頻繁に実行する必要があるPHPスクリプト、つまり約10秒ごとに実行します。必要な周波数が与えられれば、cronは適切ではないようです。スケジューリングPHPスクリプト

理想的には私のスクリプトを実行したいと思います。 A)ショートポーズとループにおいて(例えば)各実行、または Bとの間の5秒)、10秒ごとに実行するスクリプトをスケジュール

PHP、MySQLは、Linuxの

は、任意の提案を大幅に高く評価されています。

+1

これはおそらく助けになるかもしれません:http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/ –

+0

@vucetica:答えをアップアップするためにクリックしたとき、それはもうありませんでした! –

+1

はい、誰かがコメントであることがより適切であるとコメントしています。 –

答えて

2

PHPスクリプトを実行するために毎分のcronジョブを設定します。

PHPスクリプトで、コードをループで6回実行します。

あなたは、各ループの実行の間に一時停止を作成するためにsleep機能を使用することができます。http://php.net/sleep

0

あなたは日付(「S」)をチェックするループを作成し、その後、スクリプトを初期化する分ごとに実行するようにcronを設定することができます。 51より小さい場合は、ループを繰り返してループを終了し、無限ループを生成しないようにします。あなたはPHPが正常に動作するようにするため、これは非常に非効率的であり、サーバーを通常の手段に応答しないようにする可能性があることに注意してください。そこには、他のより効率的なスケジューラがあり、より短いタイムパターンで実行することができます。私がやったことの1つは、ボックスで実行され、10秒に1回PHPアプリケーションにヒットするc/C++デーモンを作成することです。これははるかに効率的でPHPスクリプトを終了することができますが、エラーチェックを追加して、サーバーが応答したか、10秒間隔で実際にpingを取得する必要があります。非常に忙しいサーバー。

0

無限ループで動作するシェルスクリプトを使用します。このスクリプトは、あなたのPHPスクリプトをトリガする必要があります。

スリープコマンドを実行している間に遅延を入れることができます。

PHPは、メモリとCPU時間を解放できるように、PHPは、それぞれの実行後に終了するように行われます。

0

のcronであなたは10秒ごとに実行するスクリプトを設定することができます。私は恐れ、あなたのスクリプトがそのような場合にどれくらいの時間を要するかを考えます。

もう一つのオプションは、プログラム内に無限ループを作成することができます。次に、実行するタスクはループブロック内にあります。ループを1回実行した後、スリープまたはスリープを使用して10秒の遅延を設定します。ここでは、プログラムのコントロールはほとんどありません。プログラムを停止するには、linux killコマンドを使用してタスクを終了する必要があります。

+0

いいえ、cronでは、スクリプトを10秒ごとに実行するように設定することはできません。 AFAIK、最小間隔は1分です。 –

+0

もしそうなら、スクリプトを連続して実行し、各繰り返しの間にスリープ状態にする必要があります。遅延を伴う無限ループが役立ちます。 – Kiran