From 0279f88e6cdc56618053ae97474d9e52d47b3020 Mon Sep 17 00:00:00 2001 From: Wouter de Jong Date: Wed, 30 Sep 2020 12:10:13 +0200 Subject: [PATCH] Call all compound limiters on failure and added IO blocking --- src/Symfony/Component/RateLimiter/CompoundLimiter.php | 4 ---- src/Symfony/Component/RateLimiter/Limit.php | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/RateLimiter/CompoundLimiter.php b/src/Symfony/Component/RateLimiter/CompoundLimiter.php index f931db51ef..e2a287685b 100644 --- a/src/Symfony/Component/RateLimiter/CompoundLimiter.php +++ b/src/Symfony/Component/RateLimiter/CompoundLimiter.php @@ -37,10 +37,6 @@ final class CompoundLimiter implements LimiterInterface foreach ($this->limiters as $limiter) { $limit = $limiter->consume($tokens); - if (0 === $limit->getRemainingTokens()) { - return $limit; - } - if (null === $minimalLimit || $limit->getRemainingTokens() < $minimalLimit->getRemainingTokens()) { $minimalLimit = $limit; } diff --git a/src/Symfony/Component/RateLimiter/Limit.php b/src/Symfony/Component/RateLimiter/Limit.php index 48e822d580..6042b6987b 100644 --- a/src/Symfony/Component/RateLimiter/Limit.php +++ b/src/Symfony/Component/RateLimiter/Limit.php @@ -43,4 +43,9 @@ class Limit { return $this->availableTokens; } + + public function wait(): void + { + sleep(($this->retryAfter->getTimestamp() - time()) * 1e6); + } }