• 締切済み

PHPのSleepについて

PHPでTwitterでメンションされたら自動返信するプログラムを書いて、Lolipopのcronにて1分間隔で実行されるようにしています。 しかし、どうしても1分間隔だと返信までに時間がかかってしまう場合があり、もう少し間隔を狭くしたいと考えております。 そこで、PHPのSleep関数を使用して 、関数呼び出し→20秒待機→関数呼び出しというプログラムにしました。 (ちなみにLolipopはPHPの処理時間が30秒までに制限されています) ここで疑問なのですが、Sleepの状態でもサーバー側に高い負荷がかかってしまうものなのでしょうか。 このプログラムでも問題ないのか、もしくはやめておいた方がよいのか教えていただけたら幸いです。

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

PHPのsleep()はCPUが停止する訳ではなく、内部的には経過時間を監視するループが動いているだけなのでCPUは動作しています。 負荷レベルはそんなに高くはありませんけどね。

回答No.1

? >そこで、PHPのSleep関数を使用して 、関数呼び出し→20秒待機→関数呼び出しというプログラムにしました。 >(ちなみにLolipopはPHPの処理時間が30秒までに制限されています) cron で */1 * * * * * の状態なんですよね? だとしたら、そこで起動したタスクは、 「関数呼び出し→20秒待機→関数呼び出し」自体を 1分周期にしただけの事なので、 1分毎に20秒遅れて動くだけなので、結局は1分周期では? さらに、それより長くすると、30秒制限があるのであれば、 1分周期内で、0~30秒未満にしか、稼働できないわけだから 常に1分周期である事実は変わらないので、 意味がない気がしますけど。 (そういうことを言ってませんかね?)