php脚本多进程请求api的限流

$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测试如下

php脚本多进程请求api的限流