2

午前 8 時から午後 8 時までの間、スクリプトを 30 秒から 1 分の間でランダムに実行したいと考えています。

ループで 30 ~ 60 秒のスリープ状態で PHP スクリプトを 1 回だけ開くのを妨げるものはありますか? そして、時刻が午前 8 時から午後 8 時の間かどうかをチェックします。

Cronジョブと比較して、これを行うことの欠点は何ですか? Cron ジョブはランダムに実行できますか?

4

3 に答える 3

4

間違いなく max_execution_time が停止する可能性があります (ホスティングで無限に設定できない場合)。睡眠時間は考慮されていませんが、しばらくすると制限に達する可能性があります。

于 2012-07-29T21:21:23.357 に答える
4

欠点は、それらが永久に実行されることです。失敗した場合、すぐに気付かない可能性が高く、ビルドを間違えると、解放せずに多くのメモリと CPU を消費します。cronjobs を使用すると、必要になるたびにクリーンで新しいプロセスが開始されることを確認できます。

追加: cronjob をセットアップするのはとても簡単です。

0,30 8-18 * * * php myscript.php
于 2012-07-29T21:20:11.090 に答える
2

このような永続的なスキームを php で実装できます。それは機能します(コマンドラインからphpを使用する場合...)。マイナーな欠点かもしれない唯一のことは、障害が発生した場合の回復がないことです。これは、cron ジョブを使用する場合は異なります。新しいプロセスが単純に開始されます。ただし、これは明らかに他のリスクをもたらすため、「より良い」方法はありません。

cron はランダムな時間にプロセスを開始できません。ただし、一定の間隔でプロセスを開始し、ランダムな長さの初期スリープ コマンドを使用できます。それは同じ効果があるはずです。

于 2012-07-29T21:19:56.800 に答える