redis 限流

 

    protected function queue()
    {
        //生成下一分鐘的redis隊列

        $nextMinute = date("Y-m-d H:i", strtotime("+1 minute"));
        $time = strtotime($nextMinute);
        for ($i = 0; $i <= 60; $i++) {

            $redis_key = $time + $i;
            $redis_key = 'miniproduct:legtype:' . $redis_key;
            $redisListData = [0, 1, 2, 2, 3, 3, 0, 1, 2, 2, 3, 3, 0, 1, 2, 2, 3, 3, 0, 1, 2, 2, 3, 3, 0, 1, 2, 2, 3, 3];
            shuffle($redisListData);
            Cache::store('redis')->handler()->lpush($redis_key, ...$redisListData);

            Cache::store('redis')->handler()->expire($redis_key, 120);
        }
        echo '執行成功';
    }

 

 

       //QPS限制判斷
        $redis_key = "miniproduct:legtype:" . time();
        $index = Cache::store('redis')->handler()->lpop($redis_key);
        if (is_numeric($index)) {
            //相關業務
        } else {
            return ResponseHelper::returnJson(-1, "當前請求人數過多,請稍後重試!", []);
        }            

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章