Лимиты и квоты защищают инфраструктуру Google от автоматизированного процесса, использующего API Центра оповещений ненадлежащим образом. Избыточное количество запросов к API может быть результатом безобидной опечатки или неэффективно спроектированной системы, которая выполняет ненужные вызовы API. Независимо от причины, блокировка трафика из определённого источника по достижении определённого уровня необходима для общей работоспособности системы Google Workspace. Это гарантирует, что действия одного разработчика не окажут негативного влияния на всё сообщество.
В маловероятном случае сбоя вашего API-запроса вы получите ответ с кодом статуса HTTP. Код статуса 403 содержит информацию об ошибке, связанной с некорректными входными данными, а код статуса HTTP 503 содержит информацию об ошибке, указывающую на превышение квот API. Эти ответы позволяют вашему приложению обнаруживать эти ошибки и предпринимать соответствующие действия.
Если ваши запросы должны быть выполнены в фиксированный период времени, отправляйте их параллельно или используйте несколько потоков в приложении Java или C#. Примером параллельных запросов является запрос небольших пакетов писем от разных пользователей, а не одновременное добавление или удаление большого количества писем от одного пользователя. В случае потоков попробуйте начать с 10 потоков, по одному потоку на каждое письмо пользователя. Обратите внимание, что рекомендация по количеству потоков имеет свои недостатки и подходит не для всех случаев API. Если количество запросов станет слишком большим, возникнут ошибки квоты.
Для всех ошибок, основанных на времени (максимум N событий в течение N секунд на поток), особенно ошибок с кодом состояния 503, мы рекомендуем вашему коду перехватывать исключение и, используя алгоритм экспоненциальной задержки , ждать небольшую задержку перед повторной попыткой неудавшегося вызова. Пример API Центра оповещений для одного потока: подождать 5 секунд и повторить неудавшийся вызов. Если запрос успешен, повторите этот шаблон для других потоков. Если второй запрос не успешен, ваше приложение должно уменьшить частоту запросов до тех пор, пока вызов не будет успешным. Например, увеличьте начальную задержку с 5 секунд до 10 секунд и повторите неудавшийся вызов снова. Также определите ограничение на количество повторных попыток. Например, повторите запрос от 5 до 7 раз с разным временем задержки, прежде чем ваше приложение вернет ошибку пользователю.
| Категории ограничений API | Пределы |
|---|---|
| Показатели QPS и QPD Центра оповещений | API ограничивает количество запросов для вашего проекта консоли API. Максимальное количество запросов в секунду (QPS проекта) для API-проекта составляет 1000. Максимальное количество запросов на пользователя в секунду (QPS пользователя) составляет 150. При превышении этих ограничений сервер возвращает код статуса HTTP |
| Другие типы ограничений | Ограничения и рекомендации |
|---|---|
| Формат данных, по умолчанию | Формат данных по умолчанию — JSON. |
| Несанкционированные запросы | Google не разрешает неавторизованные запросы к этому API. Запрос считается неавторизованным, если токен авторизации не предоставлен. Подробнее см. в разделе «Авторизация запросов» . |
Запросить увеличение квоты для каждого проекта
В зависимости от использования ресурсов вашим проектом вам может потребоваться запросить корректировку квоты. Вызовы API, выполняемые сервисной учётной записью, считаются выполненными с использованием одной учётной записи. Подача заявки на корректировку квоты не гарантирует её одобрения. Запросы на корректировку квоты, которые могут значительно увеличить её значение, могут рассматриваться дольше.
Квоты не у всех проектов одинаковые. По мере того, как вы будете всё активнее использовать Google Cloud, вам может потребоваться увеличить значения квот. Если вы ожидаете значительного роста использования, вы можете заранее запросить корректировку квот на странице «Квоты» в консоли Google Cloud.
Более подробную информацию можно найти на следующих ресурсах:
- О корректировке квот
- Просмотр текущего использования квоты и ограничений
- Запросить более высокий лимит квоты