Skip to content

Commit c5f47b7

Browse files
committed
optimize user kick process with asyncio semaphore
1 parent 6824aff commit c5f47b7

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

ban_appeals/ban_appeals.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,13 @@ async def cog_load(self) -> None:
6161
async def _sync_kicks(self) -> None:
6262
"""Iter through all members in appeals guild, kick them if they meet criteria."""
6363
await asyncio.sleep(5)
64-
for member in self.appeals_guild.members:
65-
await self._maybe_kick_user(member)
64+
semaphore = asyncio.Semaphore(5)
65+
66+
async def _process(member: discord.Member) -> None:
67+
async with semaphore:
68+
await self._maybe_kick_user(member)
69+
70+
await asyncio.gather(*(_process(m) for m in self.appeals_guild.members))
6671

6772
async def _maybe_kick_user(self, member: discord.Member) -> bool:
6873
"""

0 commit comments

Comments
 (0)