【PHP8.x】time_sleep_until関数の使い方
作成日: 更新日:
time_sleep_until関数は、指定されたマイクロ秒単位のUNIXタイムスタンプにプログラムの実行を遅延させる関数です。この関数は、プログラムが一時的に動作を停止し、引数で与えられた特定の未来の時刻が来るまで待機することを可能にします。引数には、プログラムの実行を再開したいUNIXタイムスタンプを浮動小数点数(float型)で指定します。このタイムスタンプは、秒だけでなくマイクロ秒の精度まで表現できます。
これにより、単純な時間間隔で待つsleep()
関数とは異なり、絶対的な時刻に基づいて処理の開始を制御できるため、正確な時刻にタスクを実行したい場合や、他のシステムとの同期が必要な場合に非常に有用です。例えば、毎日決まった時刻にバッチ処理を開始したい場合や、リアルタイムなシステムで特定のイベント発生時刻を精密に待機したい場合に役立ちます。
関数は、正常にスリープを完了した場合はtrue
を、何らかの理由でスリープに失敗した場合はfalse
を返します。もし指定されたタイムスタンプが現在の時刻よりも過去である場合、関数は即座に戻り、待機せずに実行が再開されます。システムはマイクロ秒単位で指定された時刻まで待機しようとしますが、OSのスケジューリング精度やシステム負荷によっては、厳密な精度が保証されない場合がある点にご留意ください。
基本的な使い方
構文(syntax)
<?php
// 現在時刻から2秒後までスクリプトの実行を一時停止します
$targetTimestamp = microtime(true) + 2;
time_sleep_until($targetTimestamp);
// スクリプトは指定した時刻まで一時停止し、その後実行を再開します
echo "指定された時刻に達し、スクリプトの実行を再開しました。\n";
?>
引数(parameters)
float $timestamp
- float $timestamp: 実行を停止する目標時刻をUnixタイムスタンプ形式で指定します。
戻り値(return)
bool
指定された時間まで処理を一時停止させる関数です。処理が正常に完了した場合は true を、タイムアウトが発生した場合は false を返します。