diff --git a/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php index 6c8445fefcfcc..152ea850d12d1 100644 --- a/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php @@ -346,10 +346,12 @@ public function get(): ?array $queuedMessageCount = $this->rawCommand('ZCOUNT', 0, $now); while ($queuedMessageCount--) { - if (![$queuedMessage, $expiry] = $this->rawCommand('ZPOPMIN', 1)) { + if (!$message = $this->rawCommand('ZPOPMIN', 1)) { break; } + [$queuedMessage, $expiry] = $message; + if (\strlen($expiry) === \strlen($now) ? $expiry > $now : \strlen($expiry) < \strlen($now)) { // if a future-placed message is popped because of a race condition with // another running consumer, the message is readded to the queue