Я понял!
Оказывается, стандартное поведение промежуточного программного обеспечения throttle
не работает на маршруте. Он просто регулирует количество запросов на каждого зарегистрированного пользователя. И, как вы можете видеть, у меня был один маршрут (один загружаемый), который имеет throttle:100,1440
, и это вызывало проблемы, приводящие к гораздо более длительным «наказаниям» даже для маршрутов с throttle:120,1
.
Мое решение: Я написал собственную версию промежуточного программного обеспечения ThrottleRequests.php
, работающего на маршруте:
- Поместите этот файл в Ваша папка
app/Http/Middleware
. - В
app/Http/Kernel.php
измените промежуточное программное обеспечение маршрута газа на новое:
'throttle' => \App\Http\Middleware\ThrottleRequestsPerRoute::class,
Теперь, когда вы назначаете промежуточное ПО
throttle
, оно будет работать для каждого маршрута.
Другое решение: Вы также можете использовать промежуточное ПО по умолчанию и использовать третий параметр. , Вы можете передать префиксный параметр следующим образом: throttle:100,1440,upload
. Он назначит префикс загрузки для регулирующего ключа и ограничит количество запросов, основываясь на этом. Однако для достижения ограничения скорости на каждый маршрут вам придется назначать разные префиксы для каждого маршрута.