From dd015020617e465ed4198d0969e2d02e8e6ff144 Mon Sep 17 00:00:00 2001 From: Ernesto Rodriguez Ortiz Date: Sat, 20 May 2023 00:01:34 -0400 Subject: [PATCH] fix: do not reset attemps header when message is requeue --- pkg/redis/RedisConsumer.php | 5 +---- pkg/redis/Tests/RedisConnectionFactoryConfigTest.php | 11 +++++------ pkg/redis/Tests/RedisConsumerTest.php | 1 + 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/pkg/redis/RedisConsumer.php b/pkg/redis/RedisConsumer.php index 6ff23f41e..9c93b642a 100644 --- a/pkg/redis/RedisConsumer.php +++ b/pkg/redis/RedisConsumer.php @@ -42,9 +42,6 @@ public function getRedeliveryDelay(): ?int return $this->redeliveryDelay; } - /** - * @param int $delay - */ public function setRedeliveryDelay(int $delay): void { $this->redeliveryDelay = $delay; @@ -103,7 +100,7 @@ public function reject(Message $message, bool $requeue = false): void if ($requeue) { $message = $this->getContext()->getSerializer()->toMessage($message->getReservedKey()); - $message->setHeader('attempts', 0); + $message->setRedelivered(true); if ($message->getTimeToLive()) { $message->setHeader('expires_at', time() + $message->getTimeToLive()); diff --git a/pkg/redis/Tests/RedisConnectionFactoryConfigTest.php b/pkg/redis/Tests/RedisConnectionFactoryConfigTest.php index 065d6f971..88c8a94b9 100644 --- a/pkg/redis/Tests/RedisConnectionFactoryConfigTest.php +++ b/pkg/redis/Tests/RedisConnectionFactoryConfigTest.php @@ -195,7 +195,7 @@ public static function provideConfigs() ], ]; - //check normal redis connection for php redis extension + // check normal redis connection for php redis extension yield [ 'redis+phpredis://localhost:1234?foo=bar', [ @@ -218,7 +218,7 @@ public static function provideConfigs() ], ]; - //check normal redis connection for predis library + // check normal redis connection for predis library yield [ 'redis+predis://localhost:1234?foo=bar', [ @@ -241,7 +241,7 @@ public static function provideConfigs() ], ]; - //check tls connection for predis library + // check tls connection for predis library yield [ 'rediss+predis://localhost:1234?foo=bar&async=1', [ @@ -264,11 +264,11 @@ public static function provideConfigs() ], ]; - //check tls connection for predis library + // check tls connection for predis library yield [ 'rediss+phpredis://localhost:1234?foo=bar&async=1', [ - 'host' => 'tls://localhost', + 'host' => 'localhost', 'scheme' => 'rediss', 'port' => 1234, 'timeout' => 5., @@ -376,7 +376,6 @@ public static function provideConfigs() ]; // from predis doc - yield [ 'tls://127.0.0.1?ssl[cafile]=private.pem&ssl[verify_peer]=1', [ diff --git a/pkg/redis/Tests/RedisConsumerTest.php b/pkg/redis/Tests/RedisConsumerTest.php index ed67bd73b..2908134fa 100644 --- a/pkg/redis/Tests/RedisConsumerTest.php +++ b/pkg/redis/Tests/RedisConsumerTest.php @@ -112,6 +112,7 @@ public function testShouldSendSameMessageToDestinationOnReQueue() $message = new RedisMessage(); $message->setBody('text'); + $message->setHeader('attempts', 0); $message->setReservedKey($serializer->toString($message)); $consumer = new RedisConsumer($contextMock, new RedisDestination('aQueue'));