Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit faeb7f0

Browse files
Move one messager after the other from list to stream
1 parent 2e54349 commit faeb7f0

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class Connection
3838
private $connection;
3939
private $stream;
4040
private $queue;
41+
private $tempQueue;
4142
private $group;
4243
private $consumer;
4344
private $autoSetup;
@@ -53,9 +54,10 @@ public function __construct(array $configuration, array $connectionCredentials =
5354
$this->connection->connect($connectionCredentials['host'] ?? '127.0.0.1', $connectionCredentials['port'] ?? 6379);
5455
$this->connection->setOption(\Redis::OPT_SERIALIZER, $redisOptions['serializer'] ?? \Redis::SERIALIZER_PHP);
5556
$this->stream = $configuration['stream'] ?? self::DEFAULT_OPTIONS['stream'];
56-
$this->queue = $this->stream.'_queue';
5757
$this->group = $configuration['group'] ?? self::DEFAULT_OPTIONS['group'];
5858
$this->consumer = $configuration['consumer'] ?? self::DEFAULT_OPTIONS['consumer'];
59+
$this->queue = $this->stream.'__queue';
60+
$this->tempQueue = $this->stream.'__queue__'.$this->group.'__'.$this->consumer;
5961
$this->autoSetup = $configuration['auto_setup'] ?? self::DEFAULT_OPTIONS['auto_setup'];
6062
}
6163

@@ -98,12 +100,14 @@ public function get(): ?array
98100
$queuedMessageCount = $this->connection->zcount($this->queue, 0, time());
99101

100102
if ($queuedMessageCount) {
101-
foreach ($this->connection->zpopmin($this->queue, $queuedMessageCount) as $queuedMessage => $time) {
102-
$queuedMessage = json_encode($queuedMessage, true);
103-
// if a futured placed message is actually popped because of a race condition with
104-
// another running message consumer, the message is readded to the queue by add function
105-
// else its just added stream and will be available for all stream consumers
106-
$this->add($queuedMessage['body'], $queuedMessage['headers'], (time() - $time) * 1000);
103+
for ($i=0;$i<$queuedMessageCount;$i++) {
104+
foreach ($this->connection->zpopmin($this->queue, 1) as $queuedMessage => $time) {
105+
$queuedMessage = json_encode($queuedMessage, true);
106+
// if a futured placed message is actually popped because of a race condition with
107+
// another running message consumer, the message is readded to the queue by add function
108+
// else its just added stream and will be available for all stream consumers
109+
$this->add($queuedMessage['body'], $queuedMessage['headers'], (time() - $time) * 1000);
110+
}
107111
}
108112
}
109113

0 commit comments

Comments
 (0)