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, "当前请求人数过多,请稍后重试!", []); }