今天在做一个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、此函数的在使用时不一定百分百正常,这跟服务器的硬件有关