diff --git a/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php b/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php index ba3dacf2515fd..8aefc2fe5afcf 100644 --- a/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php +++ b/src/Symfony/Component/Messenger/Retry/MultiplierRetryStrategy.php @@ -80,6 +80,6 @@ public function getWaitingTime(Envelope $message): int return $this->maxDelayMilliseconds; } - return $delay; + return (int) ceil($delay); } } diff --git a/src/Symfony/Component/Messenger/Tests/Retry/MultiplierRetryStrategyTest.php b/src/Symfony/Component/Messenger/Tests/Retry/MultiplierRetryStrategyTest.php index e1572bbbae58c..68dd87e83e9a7 100644 --- a/src/Symfony/Component/Messenger/Tests/Retry/MultiplierRetryStrategyTest.php +++ b/src/Symfony/Component/Messenger/Tests/Retry/MultiplierRetryStrategyTest.php @@ -52,7 +52,7 @@ public function testIsRetryableWithNoStamp() /** * @dataProvider getWaitTimeTests */ - public function testGetWaitTime(int $delay, int $multiplier, int $maxDelay, int $previousRetries, int $expectedDelay) + public function testGetWaitTime(int $delay, float $multiplier, int $maxDelay, int $previousRetries, int $expectedDelay) { $strategy = new MultiplierRetryStrategy(10, $delay, $multiplier, $maxDelay); $envelope = new Envelope(new \stdClass(), [new RedeliveryStamp($previousRetries)]); @@ -83,5 +83,10 @@ public function getWaitTimeTests(): iterable // never a delay yield [0, 2, 10000, 0, 0]; yield [0, 2, 10000, 1, 0]; + + // Float delay + yield [1000, 1.5555, 5000, 0, 1000]; + yield [1000, 1.5555, 5000, 1, 1555]; + yield [1000, 1.5555, 5000, 2, 2419]; } }
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: