@@ -52,6 +52,8 @@ def __init__( # noqa: WPS211
52
52
exchange_type : ExchangeType = ExchangeType .TOPIC ,
53
53
max_priority : Optional [int ] = None ,
54
54
delayed_message_exchange_plugin : bool = False ,
55
+ declare_exchange_kwargs : Optional [Dict [Any , Any ]] = None ,
56
+ declare_queues_kwargs : Optional [Dict [Any , Any ]] = None ,
55
57
** connection_kwargs : Any ,
56
58
) -> None :
57
59
"""
@@ -80,6 +82,8 @@ def __init__( # noqa: WPS211
80
82
:param max_priority: maximum priority value for messages.
81
83
:param delayed_message_exchange_plugin: turn on or disable
82
84
delayed-message-exchange rabbitmq plugin.
85
+ :param declare_exchange_kwargs: additional from AbstractChannel.declare_exchange
86
+ :param declare_queues_kwargs: additional from AbstractChannel.declare_queue
83
87
:param connection_kwargs: additional keyword arguments,
84
88
for connect_robust method of aio-pika.
85
89
"""
@@ -92,7 +96,9 @@ def __init__( # noqa: WPS211
92
96
self ._exchange_type = exchange_type
93
97
self ._qos = qos
94
98
self ._declare_exchange = declare_exchange
99
+ self ._declare_exchange_kwargs = declare_exchange_kwargs or {}
95
100
self ._declare_queues = declare_queues
101
+ self ._declare_queues_kwargs = declare_queues_kwargs or {}
96
102
self ._queue_name = queue_name
97
103
self ._routing_key = routing_key
98
104
self ._max_priority = max_priority
@@ -135,6 +141,7 @@ async def startup(self) -> None: # noqa: WPS217
135
141
await self .write_channel .declare_exchange (
136
142
self ._exchange_name ,
137
143
type = self ._exchange_type ,
144
+ ** self ._declare_exchange_kwargs ,
138
145
)
139
146
140
147
if self ._delayed_message_exchange_plugin :
@@ -178,6 +185,7 @@ async def declare_queues(
178
185
"""
179
186
await channel .declare_queue (
180
187
self ._dead_letter_queue_name ,
188
+ ** self ._declare_queues_kwargs ,
181
189
)
182
190
args : "Dict[str, Any]" = {
183
191
"x-dead-letter-exchange" : "" ,
@@ -188,6 +196,7 @@ async def declare_queues(
188
196
queue = await channel .declare_queue (
189
197
self ._queue_name ,
190
198
arguments = args ,
199
+ ** self ._declare_queues_kwargs ,
191
200
)
192
201
if self ._delayed_message_exchange_plugin :
193
202
await queue .bind (
@@ -201,6 +210,7 @@ async def declare_queues(
201
210
"x-dead-letter-exchange" : "" ,
202
211
"x-dead-letter-routing-key" : self ._queue_name ,
203
212
},
213
+ ** self ._declare_queues_kwargs ,
204
214
)
205
215
206
216
await queue .bind (
0 commit comments