Skip to content

Commit ca09cb9

Browse files
async_cluster: properly remove old nodes
1 parent af3597d commit ca09cb9

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

redis/asyncio/cluster.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -902,18 +902,16 @@ def set_nodes(
902902
new: Dict[str, "ClusterNode"],
903903
remove_old: bool = False,
904904
) -> None:
905-
tasks = []
906905
if remove_old:
907-
tasks = [
908-
asyncio.ensure_future(node.disconnect())
909-
for name, node in old.items()
910-
if name not in new
911-
]
906+
for name in list(old.keys()):
907+
if name not in new:
908+
asyncio.ensure_future(old.pop(name).disconnect())
909+
912910
for name, node in new.items():
913911
if name in old:
914912
if old[name] is node:
915913
continue
916-
tasks.append(asyncio.ensure_future(old[name].disconnect()))
914+
asyncio.ensure_future(old[name].disconnect())
917915
old[name] = node
918916

919917
def _update_moved_slots(self) -> None:

0 commit comments

Comments
 (0)