Merge branch 'bugfix/RED-10722' into 'master'

fix: dlq init

See merge request knecon/research/pyinfra!109
This commit is contained in:
Jonathan Kössler 2025-01-15 10:56:12 +01:00
commit 5ce66f18a0
3 changed files with 261 additions and 3 deletions

253
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -122,6 +122,11 @@ class AsyncQueueManager:
self.config.service_response_exchange_name, ExchangeType.DIRECT, durable=True
)
# we must declare DLQ to handle error messages
self.dead_letter_queue = await self.channel.declare_queue(
self.config.service_dead_letter_queue_name, durable=True
)
@retry(tries=5, exceptions=(AMQPConnectionError, ChannelInvalidStateError), reraise=True, logger=logger)
async def setup_tenant_queue(self) -> None:
self.tenant_exchange_queue = await self.channel.declare_queue(
@ -160,6 +165,10 @@ class AsyncQueueManager:
input_queue = await self.channel.declare_queue(
queue_name,
durable=True,
arguments={
"x-dead-letter-exchange": "",
"x-dead-letter-routing-key": self.config.service_dead_letter_queue_name,
},
)
await input_queue.bind(self.input_exchange, routing_key=tenant_id)
self.consumer_tags[tenant_id] = await input_queue.consume(self.process_input_message)

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "pyinfra"
version = "3.4.1"
version = "3.4.2"
description = ""
authors = ["Team Research <research@knecon.com>"]
license = "All rights reseverd"