今天在做一个API接口调用的功能时,需要添加一个接口的调用限制逻辑。即用户在调用接口一定的次数后,限制用户的处理速度,达到一个防止机器刷量的目的。实现这个功能就要用到PHP的延迟执行代码逻辑的函数sleep()

php sleep() 函数

sleep():函数可以延迟php代码执行若干秒。

语法:

sleep(seconds)

参数:

seconds:必需,要延时的时间,单为秒

例:PHP暂停代码5秒后继续执行

PHP代码:

<?php
echo date('H:i:s');
echo date('H:i:s');
//暂停5秒后执行
sleep(5);
echo date('H:i:s');
?>

输出结果:

11:40:56

11:40:56

11:41:01

php usleep() 函数

usleep() 函数延迟代码执行若干微秒。

语法:

usleep(microseconds)

参数:

microseconds:必需。暂停的时间以微秒为单位。

例:PHP代码暂停1秒后执行

PHP代码:

<?php
echo date('h:i:s');
//暂停1秒,以微秒为单位
usleep(1000000);
echo date('h:i:s');
?>

执行结果:

11:53:00

11:53:01

注:

1、1秒 = 1000毫秒   1毫秒 = 1000微秒

2、usleep() 函数中的时间单位为微秒,要特别注意

3、此函数的在使用时不一定百分百正常,这跟服务器的硬件有关