From b83d9892344f4f2d8f7e27207a0b49da7b6c87e1 Mon Sep 17 00:00:00 2001 From: Yaroslav Petrov Date: Tue, 20 May 2025 13:51:49 +0200 Subject: [PATCH 1/2] Add merging of `declare_queue_kwargs["arguments"]` --- taskiq_aio_pika/broker.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/taskiq_aio_pika/broker.py b/taskiq_aio_pika/broker.py index 35422a9..9f4cdf1 100644 --- a/taskiq_aio_pika/broker.py +++ b/taskiq_aio_pika/broker.py @@ -193,6 +193,9 @@ async def declare_queues( } if self._max_priority is not None: args["x-max-priority"] = self._max_priority + if "arguments" in self._declare_queues_kwargs: + args.update(self._declare_queues_kwargs["arguments"]) + del self._declare_queues_kwargs["arguments"] queue = await channel.declare_queue( self._queue_name, arguments=args, From fdcff93bc9f03d20235c6c5c8baf47ec2f13d0f7 Mon Sep 17 00:00:00 2001 From: Yaroslav Petrov Date: Tue, 20 May 2025 15:21:32 +0200 Subject: [PATCH 2/2] Fix order of arguments application --- taskiq_aio_pika/broker.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/taskiq_aio_pika/broker.py b/taskiq_aio_pika/broker.py index 9f4cdf1..a3f3939 100644 --- a/taskiq_aio_pika/broker.py +++ b/taskiq_aio_pika/broker.py @@ -187,19 +187,21 @@ async def declare_queues( self._dead_letter_queue_name, **self._declare_queues_kwargs, ) - args: "Dict[str, Any]" = { + args: Dict[str, Any] = { "x-dead-letter-exchange": "", "x-dead-letter-routing-key": self._dead_letter_queue_name, } if self._max_priority is not None: args["x-max-priority"] = self._max_priority - if "arguments" in self._declare_queues_kwargs: - args.update(self._declare_queues_kwargs["arguments"]) - del self._declare_queues_kwargs["arguments"] queue = await channel.declare_queue( self._queue_name, - arguments=args, - **self._declare_queues_kwargs, + **{ + **self._declare_queues_kwargs, + "arguments": { + **self._declare_queues_kwargs.get("arguments", {}), + **args, + }, + }, ) if self._delayed_message_exchange_plugin: await queue.bind( @@ -209,11 +211,14 @@ async def declare_queues( else: await channel.declare_queue( self._delay_queue_name, - arguments={ - "x-dead-letter-exchange": "", - "x-dead-letter-routing-key": self._queue_name, + **{ + **self._declare_queues_kwargs, + "arguments": { + **self._declare_queues_kwargs.get("arguments", {}), + "x-dead-letter-exchange": "", + "x-dead-letter-routing-key": self._queue_name, + }, }, - **self._declare_queues_kwargs, ) await queue.bind(