Серверы знают, что это нужно для синхронизации или ожидать, что программисты сделают это.Поэтому сомневайтесь, есть ли наказание, если только они не получат океан запросов, которые вообще не откатываются после 429.
Каждый поток должен ждать, но каждый будет, после того, как ему будут сообщены индивидуально.
Хорошая система будет знать, какова ее скорость, и будет в этом.Один из способов добиться этого - иметь переменную sleepFor между запросами.Точное значение prod может быть получено методом проб и ошибок и будет временем ожидания минус время предыдущего запроса.
Так что, если один запрос заканчивается, и, скажем, это заняло x миллисекунд.Теперь, если время ожидания равно 0 или меньше, немедленно перейдите к следующему запросу, если 1 или больше, чем выясните sleepTime-x, если это значение меньше 1, перейдите к следующему немедленно, в противном случае, спите в течение стольких миллисекунд, а затем перейдите к следующему запросу..
Другим способом было бы иметь счет для каждых 5 минут или около того, и затем, если фактический запрос потока больше, чем тогда, он спит до 5 минут, прежде чем перейти к следующему.Здесь 5 можно настроить как timePeriod.
Что мы делаем, это храним эти значения в базе данных, но кешируем их во время выполнения.Также есть страница для аннулирования кэшей, поэтому, если мы захотим, мы можем обновить базу данных со страницы администратора, а затем аннулировать кэши, и, таким образом, клиенты будут получать новую информацию во время работы.Это помогает настроить правильное значение, чтобы оно оставалось в пределах ограничений API и выполняло достаточное количество заданий.