睡觉的时差

时间:2016-12-18 02:46:12

标签: php sleep

$lastRequestTimestamp = microtime(true);
if (microtime(true) - $lastRequestTimestamp < 1) {
  sleep(1);
}
$lastRequestTimestamp = microtime(true);

// now continue with the request ... 

...有效,但如果差异甚至是几毫秒,那么它会为1 second休眠,考虑到我必须提出的请求数量,这是很重要的。

如何使脚本只能睡眠,以至于请求之间的延迟时间恰好为1秒,不能再少。

2 个答案:

答案 0 :(得分:3)

您可以使用usleep功能,这样您可以睡眠微秒而不是完整秒。

答案 1 :(得分:1)

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