Skip to content

Commit 7097184

Browse files
committed
Optionally overwrite exchange name for sending messages
1 parent 5d685ca commit 7097184

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/amqpstorm_flask/RabbitMQ.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ def __init__(
2929
exchange_params=None,
3030
*,
3131
default_send_properties=None,
32+
mq_url=None,
33+
mq_exchange=None,
34+
logger=None
3235
):
33-
self.mq_url = None
34-
self.mq_exchange = None
35-
self.logger = None
36+
self.mq_url = mq_url
37+
self.mq_exchange = mq_exchange
38+
self.logger = logger
3639
self.body_parser = body_parser
3740
self.msg_parser = msg_parser
3841
self.exchange_params = exchange_params or ExchangeParams()
@@ -106,15 +109,17 @@ def send(
106109
retries: int = 5,
107110
message_version: str = "v1.0.0",
108111
debug_exchange: bool = False,
112+
exchange_name: str = None,
109113
**properties,
110114
):
111115
filterwarnings(action="ignore", message="unclosed", category=ResourceWarning)
112-
exchange_name = (
113-
f"{self.mq_exchange}-development" if self.development else self.mq_exchange
116+
exchange_name = self.mq_exchange if exchange_name is None else exchange_name
117+
exchange = (
118+
f"{exchange_name}-development" if self.development else exchange_name
114119
)
115120
self._validate_channel_connection()
116121
self.channel.exchange.declare(
117-
exchange=f"{exchange_name}-debug" if debug_exchange else exchange_name,
122+
exchange=f"{exchange}-debug" if debug_exchange else exchange,
118123
exchange_type=exchange_type,
119124
passive=self.exchange_params.passive,
120125
durable=self.exchange_params.durable,
@@ -123,7 +128,7 @@ def send(
123128

124129
retry_call(
125130
self._publish_to_channel,
126-
(body, routing_key, message_version, debug_exchange),
131+
(body, routing_key, message_version, debug_exchange, exchange_name),
127132
properties,
128133
exceptions=(AMQPConnectionError, AssertionError),
129134
tries=retries,
@@ -137,6 +142,7 @@ def _publish_to_channel(
137142
routing_key: str,
138143
message_version: str,
139144
debug_exchange: bool = False,
145+
exchange_name: str = None,
140146
**properties,
141147
):
142148
encoded_body = json.dumps(body, cls=self.json_encoder).encode("utf-8")
@@ -149,9 +155,6 @@ def _publish_to_channel(
149155
properties["headers"] = {}
150156
properties["headers"]["x-message-version"] = message_version
151157
filterwarnings(action="ignore", message="unclosed", category=ResourceWarning)
152-
exchange_name = (
153-
f"{self.mq_exchange}-development" if self.development else self.mq_exchange
154-
)
155158

156159
self._validate_channel_connection()
157160
self.channel.basic.publish(

0 commit comments

Comments
 (0)