Skip to content

Commit 1eebfad

Browse files
author
DanielePalaia
committed
supporting multinode in Connection
1 parent 26f15a0 commit 1eebfad

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

examples/getting_started/reconnection_example.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ def on_link_closed(self, event: Event) -> None:
9191

9292

9393
def create_connection() -> Connection:
94+
# for multinode specify a list of urls and fill the field urls of Connection instead of url
95+
# urls = [
96+
# "amqp://ha_tls-rabbit_node0-1:5602/",
97+
# "amqp://ha_tls-rabbit_node0-2:5602/",
98+
# "amqp://ha_tls-rabbit_node0-3:5602/",
99+
# ]
94100
connection = Connection(
95101
"amqp://guest:guest@localhost:5672/", on_disconnection_handler=on_disconnected
96102
)

rabbitmq_amqp_python_client/connection.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,17 @@
2020
class Connection:
2121
def __init__(
2222
self,
23-
addr: str,
23+
# single-node mode
24+
url: Optional[str] = None,
25+
# multi-node mode
26+
urls: Optional[list[str]] = None,
2427
ssl_context: Optional[SslConfigurationContext] = None,
2528
on_disconnection_handler: Optional[CB] = None, # type: ignore
2629
):
27-
self._addr: str = addr
30+
if url is None and urls is None:
31+
raise ValueError("You need to specify at least an addr or a list of addr")
32+
self._addr: Optional[str] = url
33+
self._addrs: Optional[list[str]] = urls
2834
self._conn: BlockingConnection
2935
self._management: Management
3036
self._on_disconnection_handler = on_disconnection_handler
@@ -49,7 +55,8 @@ def dial(self) -> None:
4955
self._conf_ssl_context.client_cert.password,
5056
)
5157
self._conn = BlockingConnection(
52-
self._addr,
58+
url=self._addr,
59+
urls=self._addrs,
5360
ssl_domain=self._ssl_domain,
5461
on_disconnection_handler=self._on_disconnection_handler,
5562
)

0 commit comments

Comments
 (0)