Ограничения использования

Поскольку API Google Таблиц является общим сервисом, мы применяем квоты и ограничения, чтобы обеспечить его справедливое использование всеми пользователями и защитить общее состояние системы Google Workspace.

Ограничения квоты

Хотя Sheets API не имеет жестких ограничений на размер запроса API, пользователи могут столкнуться с ограничениями, связанными с различными компонентами обработки, не контролируемыми Sheets. Чтобы ускорить запросы, Google рекомендует максимальную полезную нагрузку 2 МБ.

Sheets API имеет поминутные квоты, которые пополняются каждую минуту. Например, существует ограничение на количество запросов на чтение, составляющее 300 в минуту для каждого проекта. Если ваше приложение отправляет 350 запросов за одну минуту, дополнительные 50 запросов превышают квоту и генерируют ответ с кодом состояния HTTP 429: Too many requests . Если это произойдет, вам следует использовать алгоритм экспоненциальной отсрочки . Через 1 минуту вы можете снова выполнять запросы. Пользователи могут отправлять несколько запросов одновременно, если они находятся в пределах квоты.

Все запросы Таблиц применяются атомарно. То есть, если какой-либо запрос недействителен, то все обновление завершается неудачей и ни одно из (потенциально зависимых) изменений не применяется.

В следующей таблице подробно описаны ограничения запросов. При условии соблюдения поминутных квот количество запросов, которые вы можете сделать в день, не ограничено.

Квоты
Запросы на чтение
За минуту за проект 300
За минуту на пользователя на проект 60
Пишите запросы
За минуту за проект 300
За минуту на пользователя на проект 60

Подробную информацию об ограничениях на файлы см. в разделе Файлы, которые можно хранить на Google Диске .

Устранение ошибок квот на основе времени

Для всех ошибок, связанных со временем (максимум N запросов за X минут), мы рекомендуем, чтобы ваш код перехватывал исключение и использовал усеченную экспоненциальную отсрочку , чтобы убедиться, что ваши устройства не создают чрезмерную нагрузку.

Экспоненциальная отсрочка — это стандартная стратегия обработки ошибок для сетевых приложений. Алгоритм экспоненциальной отсрочки повторяет запросы, используя экспоненциально увеличивающееся время ожидания между запросами, вплоть до максимального времени отсрочки. Если запросы по-прежнему не увенчались успехом, важно, чтобы задержки между запросами со временем увеличивались, пока запрос не будет успешным.

Пример алгоритма

Алгоритм экспоненциальной отсрочки повторяет запросы экспоненциально, увеличивая время ожидания между повторными попытками до максимального времени отсрочки. Например:

  1. Сделайте запрос к API Google Таблиц.
  2. Если запрос не выполнен, подождите 1 + random_number_milliseconds и повторите запрос.
  3. Если запрос не выполнен, подождите 2 + random_number_milliseconds и повторите запрос.
  4. Если запрос не выполнен, подождите 4 + random_number_milliseconds и повторите запрос.
  5. И так далее, до maximum_backoff отсрочки.
  6. Продолжайте ждать и повторять попытки до определенного максимального количества, но не увеличивайте период ожидания между попытками.

где:

  • Время ожидания составляет min(((2^n)+random_number_milliseconds), maximum_backoff) , при этом n увеличивается на 1 для каждой итерации (запроса).
  • random_number_milliseconds — случайное число миллисекунд, меньшее или равное 1000. Это помогает избежать случаев, когда многие клиенты синхронизируются по какой-то ситуации и все повторяют попытки одновременно, отправляя запросы синхронизированными волнами. Значение random_number_milliseconds пересчитывается после каждого повторного запроса.
  • maximum_backoff обычно составляет 32 или 64 секунды. Соответствующее значение зависит от варианта использования.

Клиент может продолжить повторную попытку после достижения maximum_backoff времени возврата. Повторные попытки после этого момента не требуют дальнейшего увеличения времени отсрочки. Например, если клиент использует время maximum_backoff равное 64 секундам, то после достижения этого значения клиент может повторять попытку каждые 64 секунды. В какой-то момент клиентам следует запретить повторные попытки на неопределенный срок.

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

Цены

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

Запросить увеличение квоты

В зависимости от использования ресурсов вашего проекта вы можете запросить увеличение квоты. Вызовы API со стороны учетной записи службы считаются использованием одной учетной записи. Подача заявки на увеличение квоты не гарантирует одобрения. Для утверждения значительного увеличения квоты может потребоваться больше времени.

Не все проекты имеют одинаковые квоты. Поскольку вы со временем все чаще используете Google Cloud, возможно, вам придется увеличить квоты. Если вы ожидаете заметного увеличения использования, вы можете заранее запросить корректировку квот на странице «Квоты» в консоли Google Cloud.

Чтобы узнать больше, посетите следующие ресурсы: