На основании вашего кода эта ошибка происходит из цикла, который запрашивает когнитивный API.
На самом деле каждая когнитивная служба имеет ограничение TPS (транзакций в секунду) и сообщит об ошибке 429 при превышении TPS.Даже если конкретная когнитивная служба имеет более высокую TPS, например 50 TPS, возможно, у вас все равно есть ошибка 429.Чтобы избежать 429 в будущем, всегда следует использовать следующую политику.
Ниже приведено объяснение 429 и способ обработки 429.
HTTP 429 будет означать RateLimitExceeded,Это означает, что вы делаете слишком много вызовов API в секунду или минуту.
Когда происходит HTTP 429, вы должны подождать некоторое время для повторного вызова API, иначе в следующем вызове API будет отказано.Обычно мы повторяем операцию, используя что-то вроде экспоненциальной политики повторных попыток отката для обработки ошибки 429:
2.1) Вам необходимо проверить код ответа HTTP в своем коде.
2.2) Если код ответа HTTP равен 429, повторите эту операцию через N секунд, которые вы можете определить самостоятельно, например, 10 секунд ...
Например, ниже приведен ответ 429. Вы можете установить время ожиданиявремя как (26 + n) секунд.(PS: здесь вы можете определить n самостоятельно, например, n = 5…)
{
"error":{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 26 seconds."
}
}
2.3) Если шаг 2 выполнен успешно, продолжите следующую операцию.
2.4) Если шаг 2Сбой также с 429, повторите эту операцию через N * N секунд (вы также можете определить ее самостоятельно), что является экспоненциальной политикой повторного отката.
2.5) Если шаг 4 завершается неудачно и с 429, повторите эту операциюпосле N N N секунд…
2.6) Вы всегда должны ждать успешного завершения текущей операции, и время ожидания будет экспоненциально расти.