2015-09-04 3 views
1

У меня есть служба, которая занимает очередь курсов, созданных в моем SIS, и пытаюсь автоматически создать их через API Google Classroom. Я был в состоянии создать около 1000 курсов и теперь я получаю ошибку ниже: Это, кажется, не имеет значения, что я делаюGoogle Classroom 503 Service Unavailable Backend Error при создании курса

Google.Apis.Requests.RequestError 
The service is currently unavailable. [503] 
Errors [ 
    Message[The service is currently unavailable.] Location[ - ] Reason[backendError] Domain[global] 
] 

, ошибка все равно происходит.

+0

Я думаю, что эта ошибка, скорее всего, связана с ограничениями использования API Classroom. Проверьте эту ссылку https://developers.google.com/classroom/limits. Сообщите мне, если вы все еще видите проблему. – SGC

+0

Я проверил, и я не вижу, как мои ограничения достигаются в консоли разработчиков. На самом деле, я ничего не вижу в консоли разработчиков. –

+0

Это также происходит только в одном домене, в домене моего клиента. В моем собственном тестовом домене ТОЧНЫЙ такой же код работает отлично. –

ответ

3

Это обычное явление с API Google. Это метод, который используют серверы Google, чтобы сказать «вы собираетесь замедлять работу». Чтобы справиться с этим, хорошо себя вести клиенты API должны реализовать exponential backoff.

Так, например, ваш скрипт может создавать курсы так быстро, как только может, так как он получает ответы об успехе HTTP 2xx от Google. Как только он увидит ошибку заднего плана 503, он должен приостановить все вызовы на 1 секунду, а затем повторить неудачную операцию. Очень часто при 2-й попытке операция будет успешной, но если это не ваш сценарий, то нужно приостановить 2 секунды, затем 4, 8 и т. Д. И т. Д. До достижения успеха. Я рекомендую maxing из 10 попыток, а затем с ошибкой.

Если ваш скрипт не делает отсрочки и просто продолжает повторять вызовы API без пауз, вы, вероятно, увидите увеличение таких ошибок, и в конечном итоге ваш скрипт может быть внесен в черный список.

+0

У меня был сценарий, который я запускал всю ночь. Я добавлю код для экспоненциального отсрочки, но если мой скрипт занесен в черный список, что мне делать? –

Смежные вопросы