Есть ли причина использовать обратный вызов внутри Redis :: throttle - PullRequest
0 голосов
/ 23 января 2020

Обычный формат, который я видел для использования Redis::throttle, это

Redis::throttle('key')->allow(1)->every(60)->then(function(){
    // run code x here
});
// run code y here

Но code x и code y оба запускаются в одинаковых условиях - если регулятор должен ждать c, он ожидает se c, затем выполняет код x, а затем выполняет код y - он ожидает в обоих случаях. И если регулятор решает, что ожидание слишком длинное, он выдает \Illuminate\Contracts\Redis\LimiterTimeoutException и не запускает x или y.

Итак, мой вопрос заключается в следующем: есть ли что-то не так с простым пропуском ->then в целом и просто выполняю

Redis::throttle('key')->allow(1)->every(60);
// run code x here

Потому что в настоящий момент я не вижу смысла в обратном вызове.

[править] после небольшого тестирования дроссель не работает на самом деле не работает, если вы не поставите ->then и обратный вызов. ОДНАКО, вам не нужно вводить какой-либо код в обратный вызов, так что вы все равно можете сделать

Redis::throttle('key')->allow(1)->every(60)->then(function(){});
// run code x here
...