From 056b4a5431a2501145d307ff76f9132b5135816e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Ostroluck=C3=BD?= Date: Sat, 10 Feb 2024 10:50:40 +0100 Subject: [PATCH] [Messenger] AMQP:Automatically reconnect on connection loss --- .../Messenger/Bridge/Amqp/Transport/AmqpReceiver.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpReceiver.php b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpReceiver.php index 631f79da9dcb9..44a2ab6b87513 100644 --- a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpReceiver.php +++ b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/AmqpReceiver.php @@ -52,6 +52,16 @@ private function getEnvelope(string $queueName): iterable { try { $amqpEnvelope = $this->connection->get($queueName); + } catch (\AMQPConnectionException) { + // Try to reconnect once to accommodate need for one of the nodes in cluster needing to stop serving the + // traffic. This may happen for example when one of the nodes in cluster is going into maintenance node. + // see https://github.com/php-amqplib/php-amqplib/issues/1161 + try { + $this->connection->queue($queueName)->getConnection()->reconnect(); + $amqpEnvelope = $this->connection->get($queueName); + } catch (\AMQPException $exception) { + throw new TransportException($exception->getMessage(), 0, $exception); + } } catch (\AMQPException $exception) { throw new TransportException($exception->getMessage(), 0, $exception); } 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