$lastRequestTimestamp = microtime(true);
if (microtime(true) - $lastRequestTimestamp < 1) {
sleep(1);
}
$lastRequestTimestamp = microtime(true);
// now continue with the request ...
...有效,但如果差异甚至是几毫秒,那么它会为1 second
休眠,考虑到我必须提出的请求数量,这是很重要的。
如何使脚本只能睡眠,以至于请求之间的延迟时间恰好为1秒,不能再少。
答案 0 :(得分:3)
您可以使用usleep
功能,这样您可以睡眠微秒而不是完整秒。
答案 1 :(得分:1)
$timeDifferenceSecs = (microtime(true) - $lastRequestTimestamp);
$sleepMicrosecs = (1 - $timeDifferenceSecs)*1000000;
usleep($sleepMicrosecs);