From d5942e8a47bc3182e060d4759a05b6b0672c7a1e Mon Sep 17 00:00:00 2001 From: Alexander Karashchuk Date: Fri, 21 Mar 2025 18:42:41 +0300 Subject: [PATCH 1/2] Try SIGHeartbeatSender --- src/Remote/AMQP/Connector.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Remote/AMQP/Connector.php b/src/Remote/AMQP/Connector.php index 6b1e807..3674e4a 100644 --- a/src/Remote/AMQP/Connector.php +++ b/src/Remote/AMQP/Connector.php @@ -7,12 +7,12 @@ use InvalidArgumentException; use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AMQPStreamConnection; -use PhpAmqpLib\Connection\Heartbeat\PCNTLHeartbeatSender; +use PhpAmqpLib\Connection\Heartbeat; class Connector { private ?AMQPChannel $channel = null; - private ?PCNTLHeartbeatSender $heartbeats = null; + private ?Heartbeat\AbstractSignalHeartbeatSender $heartbeats = null; /** * @param array> $hosts @@ -63,7 +63,12 @@ public function connect(): AMQPChannel $connection = AMQPStreamConnection::create_connection($this->hosts, $this->options); if ($connection->getHeartbeat() > 0) { - $this->heartbeats = new PCNTLHeartbeatSender($connection); + $heartbeatClass = match ($this->options['heartbeat_sender'] ?? null) { + 'sig' => Heartbeat\SIGHeartbeatSender::class, + default => Heartbeat\PCNTLHeartbeatSender::class, + }; + + $this->heartbeats = new $heartbeatClass($connection); $this->heartbeats->register(); } From 0a15032e9645a5a56a79ea2c7d499587b4baa5d1 Mon Sep 17 00:00:00 2001 From: Alexander Karashchuk Date: Mon, 24 Mar 2025 12:07:36 +0300 Subject: [PATCH 2/2] PR fix --- src/Remote/AMQP/Connector.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Remote/AMQP/Connector.php b/src/Remote/AMQP/Connector.php index 3674e4a..23d062e 100644 --- a/src/Remote/AMQP/Connector.php +++ b/src/Remote/AMQP/Connector.php @@ -63,12 +63,11 @@ public function connect(): AMQPChannel $connection = AMQPStreamConnection::create_connection($this->hosts, $this->options); if ($connection->getHeartbeat() > 0) { - $heartbeatClass = match ($this->options['heartbeat_sender'] ?? null) { - 'sig' => Heartbeat\SIGHeartbeatSender::class, - default => Heartbeat\PCNTLHeartbeatSender::class, + $this->heartbeats = match ($this->options['heartbeat_sender'] ?? null) { + 'sig' => new Heartbeat\SIGHeartbeatSender($connection), + default => new Heartbeat\PCNTLHeartbeatSender($connection), }; - $this->heartbeats = new $heartbeatClass($connection); $this->heartbeats->register(); }