2016-12-18 3 views
1

...でも、その差が数ミリ秒であっても、私がしなければならない要求の数を考慮すると、それは重要な意味を持つ1 secondで眠ります。時間差を寝かせて

どのようにすれば、スクリプトをスリープ状態にするだけで、リクエスト間に常に正確に1秒の遅延があります。

答えて

1
$timeDifferenceSecs = (microtime(true) - $lastRequestTimestamp); 
$sleepMicrosecs = (1 - $timeDifferenceSecs)*1000000; 
usleep($sleepMicrosecs); 
3

代わりにusleep関数を使用することができます。このように、完全な秒数ではなくマイクロ秒でスリープすることができます。

+0

だから '$ timeDifference = microtime(true) - $ lastRequestTimestamp'そして' usleep($ timeDifference) '? – 3zzy

+0

@ 3zzy 'usleep'はマイクロ秒を想定しているので、使用することはできません。時間差は秒単位です。 'microtime'は秒単位で秒を返します。 – rtheunissen