此外,为了更好的减少数据库的并发量,可以采用随机拒绝的方式,即设置一个请求中间件,当用户的请求到来的时候,对请求进行过滤。即只有百分之多少的人可以参与秒杀。
public function handle($request, Closure $next, $percent)
{
if (random_int(0, 100) < (int)$percent) {
throw new InvalidRequestException('参与的用户过多,请稍后再试', 403);
}
return $next($request);
}