Skip to content

Commit 72d31d4

Browse files
committed
adding more logging and chunking how many updates to apply to the database in one go
1 parent 0c817c9 commit 72d31d4

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

wall_e/extensions/leveling.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -724,20 +724,34 @@ async def reset_user_profiles(self, interaction: discord.Interaction):
724724
return
725725
self.bucket_update_in_progress = True
726726
users_to_update = []
727-
for user_id in self.user_points.keys():
727+
number_of_user_points = len(self.user_points)
728+
for indx, user_id in enumerate(self.user_points.keys()):
728729
self.user_points[user_id].bucket_number = None
729730
self.user_points[user_id].leveling_update_attempt = 0
730731
self.user_points[user_id].avatar_url = None
731732
self.user_points[user_id].avatar_url_message_id = None
732733
self.user_points[user_id].leveling_message_avatar_url = None
733734
self.user_points[user_id].discord_avatar_link_expiry_date = None
734735
users_to_update.append(self.user_points[user_id])
735-
await UserPoint.async_bulk_update(
736-
users_to_update,
737-
["bucket_number", "leveling_update_attempt", "avatar_url", "avatar_url_message_id",
738-
"leveling_message_avatar_url", "discord_avatar_link_expiry_date"
739-
]
740-
)
736+
self.logger.debug(f"[Leveling reset_user_profiles()] {indx}/ {number_of_user_points} UserPoints reset")
737+
738+
user_lower_bound = 0
739+
number_of_users_per_update = 50
740+
user_upper_bound = number_of_users_per_update
741+
number_of_users_to_update = len(users_to_update)
742+
while user_lower_bound < number_of_users_to_update:
743+
await UserPoint.async_bulk_update(
744+
users_to_update[user_lower_bound:user_upper_bound],
745+
["bucket_number", "leveling_update_attempt", "avatar_url", "avatar_url_message_id",
746+
"leveling_message_avatar_url", "discord_avatar_link_expiry_date"
747+
]
748+
)
749+
self.logger.debug(
750+
f"[Leveling reset_user_profiles()] users between [{user_lower_bound},{user_upper_bound}) "
751+
f"updated out of {number_of_users_to_update}"
752+
)
753+
user_lower_bound = user_upper_bound
754+
user_upper_bound += number_of_users_per_update
741755
e_obj = await embed(
742756
self.logger, interaction=interaction,
743757
description=f'{len(users_to_update)} bucket_numbers reset to None'

0 commit comments

Comments
 (0)