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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy