From 4d10a43fe3ddcff96ce7b07376600ff5764f1bf2 Mon Sep 17 00:00:00 2001 From: Buster Neece Date: Wed, 29 Nov 2023 18:55:44 -0600 Subject: [PATCH] [Messenger] Avoid reconnecting an already-connected Redis instance. --- .../Messenger/Bridge/Redis/Transport/Connection.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php index bfdf13b8c119a..9f75a71600443 100644 --- a/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/Redis/Transport/Connection.php @@ -166,9 +166,11 @@ public function __construct(array $options, \Redis|Relay|\RedisCluster $redis = */ private static function initializeRedis(\Redis|Relay $redis, string $host, int $port, string|array|null $auth, array $params): \Redis|Relay { - $connect = isset($params['persistent_id']) ? 'pconnect' : 'connect'; - $redis->{$connect}($host, $port, $params['timeout'], $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...(\defined('Redis::SCAN_PREFIX') || \extension_loaded('relay')) ? [['stream' => $params['ssl'] ?? null]] : []); - + if (!$redis->isConnected()) { + $connect = isset($params['persistent_id']) ? 'pconnect' : 'connect'; + $redis->{$connect}($host, $port, $params['timeout'], $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...(\defined('Redis::SCAN_PREFIX') || \extension_loaded('relay')) ? [['stream' => $params['ssl'] ?? null]] : []); + } + $redis->setOption($redis instanceof \Redis ? \Redis::OPT_SERIALIZER : Relay::OPT_SERIALIZER, $params['serializer']); if (null !== $auth && !$redis->auth($auth)) {