Skip to content

Commit f8c1335

Browse files
authored
Merge pull request #2 from superlevure/fix/connection-stability
fix: `is_reconnecting` case
2 parents 7c4fa60 + fcff317 commit f8c1335

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

nats/src/nats/aio/client.py

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1458,22 +1458,29 @@ async def _check_connection_health(self) -> bool:
14581458
if not self.is_connected:
14591459
if self.options[
14601460
"allow_reconnect"
1461-
] and not self.is_reconnecting and not self.is_closed:
1462-
self._status = Client.RECONNECTING
1463-
self._ps.reset()
1464-
1465-
try:
1466-
if self._reconnection_task is not None and not self._reconnection_task.cancelled(
1467-
):
1468-
self._reconnection_task.cancel()
1469-
1470-
loop = asyncio.get_running_loop()
1471-
self._reconnection_task = loop.create_task(self._attempt_reconnect())
1472-
1461+
]:
1462+
if self.is_reconnecting:
14731463
await asyncio.sleep(self.options["reconnect_time_wait"])
14741464
return self.is_connected
1475-
except Exception:
1476-
return False
1465+
1466+
if not self.is_closed:
1467+
self._status = Client.RECONNECTING
1468+
self._ps.reset()
1469+
1470+
try:
1471+
if self._reconnection_task is not None and not self._reconnection_task.cancelled(
1472+
):
1473+
self._reconnection_task.cancel()
1474+
1475+
loop = asyncio.get_running_loop()
1476+
self._reconnection_task = loop.create_task(self._attempt_reconnect())
1477+
1478+
await asyncio.sleep(self.options["reconnect_time_wait"])
1479+
return self.is_connected
1480+
except Exception:
1481+
return False
1482+
1483+
return False
14771484
return False
14781485
return True
14791486

0 commit comments

Comments
 (0)