睡觉的时差
Sleeping the time difference
$lastRequestTimestamp = microtime(true);
if (microtime(true) - $lastRequestTimestamp < 1) {
sleep(1);
}
$lastRequestTimestamp = microtime(true);
// now continue with the request ...
... 有效,但即使相差几毫秒,它也会休眠 1 second
考虑到我必须发出的请求数量,这很重要。
我如何让脚本只休眠那么多请求之间始终恰好有 1 秒的延迟,不多也不少。
您可以改用 usleep
函数,这样您就可以休眠几微秒而不是整秒。
$timeDifferenceSecs = (microtime(true) - $lastRequestTimestamp);
$sleepMicrosecs = (1 - $timeDifferenceSecs)*1000000;
usleep($sleepMicrosecs);
$lastRequestTimestamp = microtime(true);
if (microtime(true) - $lastRequestTimestamp < 1) {
sleep(1);
}
$lastRequestTimestamp = microtime(true);
// now continue with the request ...
... 有效,但即使相差几毫秒,它也会休眠 1 second
考虑到我必须发出的请求数量,这很重要。
我如何让脚本只休眠那么多请求之间始终恰好有 1 秒的延迟,不多也不少。
您可以改用 usleep
函数,这样您就可以休眠几微秒而不是整秒。
$timeDifferenceSecs = (microtime(true) - $lastRequestTimestamp);
$sleepMicrosecs = (1 - $timeDifferenceSecs)*1000000;
usleep($sleepMicrosecs);