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

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

Пределы квоты

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

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

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

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

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

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

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

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

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

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

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

  1. Сделайте запрос к Google Sheets API.
  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 секунды. В какой-то момент клиентам следует запретить бесконечно повторять попытки.

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

Цены

Любое использование API Google Таблиц доступно без дополнительной оплаты. Превышение пределов запроса квоты не влечет за собой дополнительных расходов, и с вашего аккаунта не выставляется счет.

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

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

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

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