睡觉的时差

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);