From 3b62a0690e9cb02a864b6b99ad2ba88f78e9c043 Mon Sep 17 00:00:00 2001 From: Wissame MEKHILEF Date: Tue, 28 Jun 2022 12:48:38 +0100 Subject: [PATCH] [Messenger] Ceil waiting time when multiplier is a float on retry --- .../Component/Messenger/Retry/MultiplierRetryStrategy.php | 2 +- .../Messenger/Tests/Retry/MultiplierRetryStrategyTest.php | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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]; } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy