|
1 | | -import asyncio |
2 | | - |
3 | 1 | from PasarGuardNodeBridge import PasarGuardNode, create_node, Health, NodeType |
4 | 2 | from aiorwlock import RWLock |
5 | 3 |
|
@@ -90,25 +88,24 @@ async def get_not_connected_nodes(self) -> list[tuple[int, PasarGuardNode]]: |
90 | 88 | ] |
91 | 89 | return nodes |
92 | 90 |
|
93 | | - async def update_user(self, user: UserResponse, inbounds: list[str] = None): |
94 | | - proto_user = serialize_user_for_node(user.id, user.username, user.proxy_settings.dict(), inbounds) |
95 | | - |
96 | | - async with self._lock.reader_lock: |
97 | | - add_tasks = [node.update_user(proto_user) for node in self._nodes.values()] |
98 | | - await asyncio.gather(*add_tasks, return_exceptions=True) |
99 | | - |
100 | 91 | async def update_users(self, users: list[User]): |
101 | 92 | proto_users = await serialize_users_for_node(users) |
102 | 93 | async with self._lock.reader_lock: |
103 | | - add_tasks = [node.update_users(proto_users) for node in self._nodes.values()] |
104 | | - await asyncio.gather(*add_tasks, return_exceptions=True) |
| 94 | + for node in self._nodes.values(): |
| 95 | + node.update_users(proto_users) |
| 96 | + |
| 97 | + async def _update_user(self, user): |
| 98 | + async with self._lock.reader_lock: |
| 99 | + for node in self._nodes.values(): |
| 100 | + node.update_user(user) |
| 101 | + |
| 102 | + async def update_user(self, user: UserResponse, inbounds: list[str] = None): |
| 103 | + proto_user = serialize_user_for_node(user.id, user.username, user.proxy_settings.dict(), inbounds) |
| 104 | + await self._update_user(proto_user) |
105 | 105 |
|
106 | 106 | async def remove_user(self, user: UserResponse): |
107 | 107 | proto_user = serialize_user_for_node(user.id, user.username, user.proxy_settings.dict()) |
108 | | - |
109 | | - async with self._lock.reader_lock: |
110 | | - remove_tasks = [node.update_user(proto_user) for node in self._nodes.values()] |
111 | | - await asyncio.gather(*remove_tasks, return_exceptions=True) |
| 108 | + await self._update_user(proto_user) |
112 | 109 |
|
113 | 110 |
|
114 | 111 | node_manager: NodeManager = NodeManager() |
|
0 commit comments