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

Skip to content

Commit 9031d90

Browse files
Move one messager after the other from list to stream
1 parent 0b0896f commit 9031d90

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
@@ -37,6 +37,7 @@ class Connection
3737
private $connection;
3838
private $stream;
3939
private $queue;
40+
private $tempQueue;
4041
private $group;
4142
private $consumer;
4243
private $autoSetup;
@@ -58,9 +59,10 @@ public function __construct(array $configuration, array $connectionCredentials =
5859
}
5960

6061
$this->stream = $configuration['stream'] ?? self::DEFAULT_OPTIONS['stream'];
61-
$this->queue = $this->stream.'_queue';
6262
$this->group = $configuration['group'] ?? self::DEFAULT_OPTIONS['group'];
6363
$this->consumer = $configuration['consumer'] ?? self::DEFAULT_OPTIONS['consumer'];
64+
$this->queue = $this->stream.'__queue';
65+
$this->tempQueue = $this->stream.'__queue__'.$this->group.'__'.$this->consumer;
6466
$this->autoSetup = $configuration['auto_setup'] ?? self::DEFAULT_OPTIONS['auto_setup'];
6567
$this->maxEntries = $configuration['stream_max_entries'] ?? self::DEFAULT_OPTIONS['stream_max_entries'];
6668
}
@@ -117,12 +119,14 @@ public function get(): ?array
117119
$queuedMessageCount = $this->connection->zcount($this->queue, 0, time());
118120

119121
if ($queuedMessageCount) {
120-
foreach ($this->connection->zpopmin($this->queue, $queuedMessageCount) as $queuedMessage => $time) {
121-
$queuedMessage = json_encode($queuedMessage, true);
122-
// if a futured placed message is actually popped because of a race condition with
123-
// another running message consumer, the message is readded to the queue by add function
124-
// else its just added stream and will be available for all stream consumers
125-
$this->add($queuedMessage['body'], $queuedMessage['headers'], (time() - $time) * 1000);
122+
for ($i=0;$i<$queuedMessageCount;$i++) {
123+
foreach ($this->connection->zpopmin($this->queue, 1) as $queuedMessage => $time) {
124+
$queuedMessage = json_encode($queuedMessage, true);
125+
// if a futured placed message is actually popped because of a race condition with
126+
// another running message consumer, the message is readded to the queue by add function
127+
// else its just added stream and will be available for all stream consumers
128+
$this->add($queuedMessage['body'], $queuedMessage['headers'], (time() - $time) * 1000);
129+
}
126130
}
127131
}
128132

0 commit comments

Comments
 (0)