$leftime = $objCache->ttl($questratekey);
if ($leftime <= 0) {
$objCache->set($questratekey,0);
$objCache->expire($questratekey, 1);
}
foreach ($answerInfo as $aresult) {
Util_Common::getMoveScriptTime();
//-------------------------------限流的逻辑---------------------
$rate = $objCache->get($questratekey);
Util_Common::writeScriptFileLog(self::$filelog,'++++++('.$examtype."):(".$rate.")");
if ($rate >= 85) {
Util_Common::writeScriptFileLog(self::$filelog,"------(".$examtype."):(".$rate.")");
sleep(1);
}
while(true) {
$leftime = $objCache->ttl($questratekey);
Util_Common::writeScriptFileLog(self::$filelog,">>>>>:(".$examtype."):(".$irate.'):('.$leftime.")");
if ($leftime <= 0) {
$objCache->set($questratekey,0);
$objCache->expire($questratekey, 1);
}
$irate = $objCache->incr($questratekey);
if ($irate > 85) {
Util_Common::writeScriptFileLog(self::$filelog,"^^^^^^:(".$examtype."):(".$irate.")");
sleep(1);
} else {
break;
}
}
$leftime = $objCache->ttl($questratekey);
Util_Common::writeScriptFileLog(self::$filelog,"*******:(".$examtype."):(".$irate.'):('.$leftime.")");
if ($leftime <= 0) {
$objCache->set($questratekey,0);
$objCache->expire($questratekey, 1);
}
//-------------------------------------限流-------------------------------------
rpc_api("www.baidu.com"); //每秒最多发出85个请求
php limit.php 14
php limit.php 15
php limit.php 17
上面速率限制改成了3测试如下