@@ -52,6 +52,7 @@ def __init__(self):
5252 self .bucket_update_in_progress = False
5353 self .NUMBER_OF_UPDATE_ATTEMPTS_PER_USER = 15
5454 self .MAX_RETRIES_FOR_FETCHING_USER = 5
55+ self .MAX_USER_UPDATE_CONCURRENT_ATTEMPTS = 30
5556 self .ensure_xp_roles_exist_and_have_right_users .start ()
5657 self .process_leveling_profile_data_for_lurkers .start ()
5758 self .process_outdated_profile_pics .start ()
@@ -685,11 +686,15 @@ async def _update_users_with_given_ids(self, logger, updated_user_ids):
685686 total_number_of_updates_needed = len (updated_user_ids )
686687 for index , user_id in enumerate (updated_user_ids ):
687688 if self .user_points [user_id ].being_processed :
688- logger .info (
689- f"[Leveling _update_users_with_given_ids()] skipping user with ID { user_id } who is apparently"
690- " already being processed"
691- )
692- continue
689+ if self .user_points [user_id ].concurrent_attempts > self .MAX_USER_UPDATE_CONCURRENT_ATTEMPTS :
690+ self .user_points [user_id ].concurrent_attempts = 0
691+ else :
692+ self .user_points [user_id ].concurrent_attempts += 1
693+ logger .info (
694+ f"[Leveling _update_users_with_given_ids()] skipping user with ID { user_id } who is apparently"
695+ " already being processed"
696+ )
697+ continue
693698 self .user_points [user_id ].being_processed = True
694699 user_processed = False
695700 logger .debug (
@@ -740,7 +745,15 @@ async def process_leveling_profile_data_for_active_users(self):
740745 for index , update_user in enumerate (updated_user_logs ):
741746 updated_user_id = update_user [1 ]
742747 if self .user_points [updated_user_id ].being_processed :
743- continue
748+ if self .user_points [updated_user_id ].concurrent_attempts > self .MAX_USER_UPDATE_CONCURRENT_ATTEMPTS :
749+ self .user_points [updated_user_id ].concurrent_attempts = 0
750+ else :
751+ self .user_points [updated_user_id ].concurrent_attempts += 1
752+ self .logger .info (
753+ f"[Leveling process_leveling_profile_data_for_active_users()] skipping user with ID"
754+ f" { updated_user_id } who is apparently already being processed"
755+ )
756+ continue
744757 self .user_points [updated_user_id ].being_processed = True
745758 updated_user_log_id = update_user [0 ] # noqa: F841
746759 user_processed = False
0 commit comments