ここでは、PHP スクリプトの動作を一定時間または指定した日時まで停止(スリープ)するサンプルコードを掲載しています。
スポンサーリンク
処理を一定時間または指定日時まで停止する
処理一定時間または指定日時まで停止するサンプルになります。sleep, usleep, time_nanosleep 関数で一定時間処理を停止、time_sleep_until 関数で指定日時まで処理を停止しています。詳細はサンプル内のコメントを参照ください。
// 秒指定でのスリープ(5秒)
sleep(5);
// マイクロ秒指定でのスリープ(2000000 マイクロ秒 = 2秒)
usleep(2000000);
// ナノ秒指定でのスリープ
$nano = time_nanosleep(2, 100000);
if ($nano === true) {
echo "2 秒と 100000 ナノ秒スリープ\n";
} elseif ($nano === false) {
echo "遅延に失敗しました。\n";
} elseif (is_array($nano)) {
$seconds = $nano['seconds'];
$nanoseconds = $nano['nanoseconds'];
echo "シグナルによって中断しました。\n";
echo "残りの秒数は $seconds 秒と $nanoseconds ナノ秒です。";
}
// 指定した日時までスリープする。
// なお、システム日時よりも未来時間を与える必要がある。
$until_sleep = strtotime("2016-01-25 15:22:10");
time_sleep_until($until_sleep);
参考
- sleep - 実行を遅延させる
- usleep - マイクロ秒単位で実行を遅延する
- time_nanosleep - 秒およびナノ秒単位で実行を遅延する
- time_sleep_until - 指定した時刻まで実行を遅延する