fix: connect to existing named queue instead of creating anonymous queue

- Change AsyncMQClient to connect to existing persistent queue by name
- Fix issue where DevOps Service created temporary anonymous queues instead of consuming from the correct named queue
- This allows consuming the 42 backlogged messages in freeleaps.devops.reconciler.output queue
- Change queue properties: exclusive=False, auto_delete=False, durable=True
- Resolves the core issue where messages were split between persistent and temporary queues
This commit is contained in:
Nicolas 2025-08-08 12:45:21 +08:00
parent 4340949f57
commit 04acd78d78

View File

@ -37,8 +37,10 @@ class AsyncMQClient:
name=self.exchange_name, type="direct", auto_delete=False name=self.exchange_name, type="direct", auto_delete=False
) )
# Connect to existing named queue instead of creating anonymous queue
# channel_name already contains the full queue name from environment variable
self.queue = await self.channel.declare_queue( self.queue = await self.channel.declare_queue(
name=None, exclusive=True, auto_delete=True, durable=False name=self.channel_name, exclusive=False, auto_delete=False, durable=True
) )
await self.queue.bind( await self.queue.bind(
exchange=self.exchange, routing_key=self.routing_key exchange=self.exchange, routing_key=self.routing_key