限速請求

//-------------------------------限流的邏輯---------------------
while(true) {
    $redisMutex = $objCache->setnx($setnx, time()+1);
    if ($redisMutex || (time()>$objCache->get($setnx) && time()>$objCache->getset($setnx,time()+1))) {
        $leftime = $objCache->ttl($questratekey);
        if ($leftime <= 0) {
            $irate = $objCache->incr($questratekey);
            $objCache->expire($questratekey, 1);
        } else {
            $irate = $objCache->incr($questratekey);
        }
        if ($irate > 20) {
            continue;
        } else {
            break;
        }
    } else {
        continue;
    }
}
//防止死鎖
$objCache->expire($setnx, 1);
$objCache->del($setnx);
//-------------------------------------限流-------------------------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章