From 229502a89abb176aa50e9306556432abdacd292f Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 19 May 2019 17:43:57 +0200 Subject: [PATCH] [Messenger] Make redis Connection::get() non blocking by default --- .../Transport/RedisExt/ConnectionTest.php | 20 +++++++++++-------- .../Transport/RedisExt/Connection.php | 7 ++----- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php index c2654d326d..1a602f41f2 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php @@ -46,9 +46,9 @@ class ConnectionTest extends TestCase 'host' => 'localhost', 'port' => 6379, ], [ - 'blocking_timeout' => 30, + 'serializer' => 2, ]), - Connection::fromDsn('redis://localhost/queue/group1/consumer1', ['blocking_timeout' => 30]) + Connection::fromDsn('redis://localhost/queue/group1/consumer1', ['serializer' => 2]) ); } @@ -59,9 +59,9 @@ class ConnectionTest extends TestCase 'host' => 'localhost', 'port' => 6379, ], [ - 'blocking_timeout' => 30, + 'serializer' => 2, ]), - Connection::fromDsn('redis://localhost/queue/group1/consumer1?blocking_timeout=30') + Connection::fromDsn('redis://localhost/queue/group1/consumer1?serializer=2') ); } @@ -134,16 +134,20 @@ class ConnectionTest extends TestCase $redis->del('messenger-rejectthenget'); } - public function testBlockingTimeout() + public function testGetNonBlocking() { $redis = new \Redis(); - $connection = Connection::fromDsn('redis://localhost/messenger-blockingtimeout', ['blocking_timeout' => 1], $redis); + + $connection = Connection::fromDsn('redis://localhost/messenger-getnonblocking', [], $redis); try { $connection->setup(); } catch (TransportException $e) { } - $this->assertNull($connection->get()); - $redis->del('messenger-blockingtimeout'); + $this->assertNull($connection->get()); // no message, should return null immediately + $connection->add('1', []); + $this->assertNotEmpty($message = $connection->get()); + $connection->reject($message['id']); + $redis->del('messenger-getnonblocking'); } } diff --git a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php index 566e3d6c62..b190f3105d 100644 --- a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php +++ b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php @@ -31,7 +31,6 @@ class Connection private $stream; private $group; private $consumer; - private $blockingTimeout; private $couldHavePendingMessages = true; public function __construct(array $configuration, array $connectionCredentials = [], array $redisOptions = [], \Redis $redis = null) @@ -42,7 +41,6 @@ class Connection $this->stream = $configuration['stream'] ?? '' ?: 'messages'; $this->group = $configuration['group'] ?? '' ?: 'symfony'; $this->consumer = $configuration['consumer'] ?? '' ?: 'consumer'; - $this->blockingTimeout = $redisOptions['blocking_timeout'] ?? null; } public static function fromDsn(string $dsn, array $redisOptions = [], \Redis $redis = null): self @@ -83,8 +81,7 @@ class Connection $this->group, $this->consumer, [$this->stream => $messageId], - 1, - $this->blockingTimeout + 1 ); } catch (\RedisException $e) { } @@ -142,7 +139,7 @@ class Connection } } - public function add(string $body, array $headers) + public function add(string $body, array $headers): void { $e = null; try {