Часто внутренняя ошибка http 500 с Google drive API drive.файлы.получить

У нас есть сервис, который сильно зависит от Google Drive (использует Python SDK, полученный отhttps://developers.google.com/api-client-library/python/), наш сервис проходит через коллекции и файлы Google drive.

проверенный журнал производства, мы обнаружили, что есть много внутренних ошибок сервера http 500, когда мы вызываем Google drive API drive.файлы.get, частота ошибок http 500 около 0,5%. Когда я проводил расследование, крайний случай-непрерывный сбой 9 http 500 за один час с приводом.файлы.получить API.

BTW: наш сервис размещен на Amazon Web Service, us WEST-2 data center.

У кого-нибудь есть аналогичная проблема?
Любая помощь приветствуется.

стек вызовов исключений, как показано ниже:
__File "/home/xxxxxx/xxxxxxx/storage.py", строка 1185, в get_file
___gdrive_file = self.клиент.архив.)(получить (fileId= '0Bxn2GmQxR4zHYlNvaUlFNjl6MkE', поля id=', название и modifieddate,createdDate,размер файла,тип MIME,downloadUrl,этикеток).execute ()
_файл "/usr/lib/python2.7/dist-packages/apiclient/http.py", строка 389, в execute
_
_raise HttpError(соотв., содержание, self.uri)
__HttpError: https://www.googleapis.com/drive/v2/files/0Bxn2GmQxR4zHYlNvaUlFNjl6MkE?fields=id%2Ctitle%2CmodifiedDate%2CcreatedDate%2CfileSize%2CmimeType%2CdownloadUrl%2Clabels&alt=json возвращено "Внутренняя ошибка">

2 ответов


Это примерно та же частота ошибок, которую я вижу. Просто сделайте экспоненциальный откат и повторите попытку.


поскольку инфраструктура Google сложная, крупномасштабная и распределенная, почти невозможно иметь частоту ошибок 0% - серверы или жесткие диски умирают во время запроса, неожиданные тайм-ауты между серверами внутри, отключение центра обработки данных или увеличение нагрузки, предварительные DOS-атаки, неправильные приложения... - все из которых могут повысить частоту ошибок 500-так как общая хорошая практика, реализация экспоненциальной стратегии возврата и повторной попытки на вашем конце хороша, когда вы имеете дело с Web API и на самом деле это почти обязательно, если вы хотите предложить надежную услугу, также с вашей стороны это может сгладить временный сбой сети и т. д...

теперь 0.5% немного высок, я считаю, что глобальная частота ошибок ниже в среднем, но я собираюсь довести ее до команды привода, чтобы они исследовали и попытались уменьшить это (иногда это просто увеличение тайм-аута до одной из наших зависимостей сервера). Мы всегда принимаем проходы на снижение частоты ошибок, но иногда мы должны потратьте время на создание новых функций, особенно когда продукты довольно новые:)