Como a API Google Sheets é um serviço compartilhado, aplicamos cotas e limitações para garantir que ele seja usado de maneira justa por todos os usuários e para proteger o integridade geral do sistema do Google Workspace.
Limites de cota
Embora a API Sheets não tenha limites fixos de tamanho para uma solicitação de API, os usuários podem ter limites de diferentes componentes de processamento não controlados pelo app Planilhas. Para acelerar as solicitações, o Google recomenda um payload no máximo de 2 MB.
A API Sheets tem cotas por minuto e é recarregada a cada minuto. Por exemplo, há um limite de solicitação de leitura de 300 por minuto em cada projeto.
Se o aplicativo envia 350 solicitações em um minuto, as 50 solicitações adicionais excedem a cota e geram uma
Resposta do código de status HTTP 429: Too many requests
. Se isso acontecer, você deve usar um
algoritmo de espera exponencial. Depois de um minuto,
pode executar solicitações novamente. Os usuários podem enviar várias solicitações ao mesmo tempo, desde que estejam dentro do limite da cota.
Todas as solicitações do app Planilhas são aplicadas de maneira atômica. Ou seja, se alguma solicitação não for válida, toda a atualização será malsucedida e nenhuma das alterações (potencialmente dependentes) será aplicada.
A tabela a seguir detalha os limites de solicitação. Contanto que você mantenha as cotas por minuto, não haverá limite para o número de solicitações que podem ser feitas por dia.
Cotas | |||||
---|---|---|---|---|---|
Solicitações de leitura |
|
||||
Solicitações de gravação |
|
Saiba mais detalhes sobre os limites de arquivos em Arquivos que você pode armazenar no Google Drive.
Resolver erros de cota baseada em tempo
Para todos os erros baseados em tempo (máximo de N solicitações por X minutos), recomendamos o código capturar a exceção e usar uma espera exponencial truncada para garantir que não geram carga excessiva.
A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede. Um o algoritmo de espera exponencial repete solicitações usando tempos de espera exponencialmente crescentes entre as solicitações, até um tempo máximo de espera. Se as solicitações ainda não tiverem sido bem-sucedidas, importante que os atrasos entre as solicitações aumentem ao longo do tempo até que a solicitação seja bem-sucedida.
Exemplo de algoritmo
Um algoritmo de espera exponencial repete solicitações exponencialmente, aumentando o tempo de espera entre novas tentativas até um tempo máximo de espera. Exemplo:
- Faça uma solicitação para a API Google Sheets.
- Se a solicitação falhar, aguarde 1 +
random_number_milliseconds
e tente de novo da solicitação. - Se a solicitação falhar, aguarde 2 +
random_number_milliseconds
e tente de novo. da solicitação. - Se a solicitação falhar, aguarde 4 +
random_number_milliseconds
e tente de novo da solicitação. - E assim por diante, até um tempo
maximum_backoff
. - Continue aguardando e tentando até um número máximo de novas tentativas, sem aumentar a espera. e o intervalo entre novas tentativas.
em que:
- O tempo de espera é de
min(((2^n)+random_number_milliseconds), maximum_backoff)
, comn
incrementado em 1 para cada iteração (solicitação). random_number_milliseconds
é um número aleatório de milissegundos menor que ou igual a 1.000. Isso ajuda a evitar casos nos quais muitos clientes são sincronizados pela em algumas situações e todos tentam novamente ao mesmo tempo, enviando solicitações ondas O valor derandom_number_milliseconds
é recalculado após cada repetir a solicitação.maximum_backoff
costuma ser 32 ou 64 segundos. O valor apropriado depende do caso de uso.
O cliente pode continuar tentando novamente depois de maximum_backoff
.
As novas tentativas após esse ponto não precisam continuar aumentando o tempo de espera. Para
exemplo, se um cliente usar um tempo de maximum_backoff
de 64 segundos, depois de atingir
esse valor, o cliente poderá tentar novamente a cada 64 segundos. Em algum momento,
os clientes devem ser impedidos de tentar novamente indefinidamente.
O tempo de espera entre novas tentativas e o número de novas tentativas depende do seu caso de uso e as condições da rede.
Preços
A API Google Sheets está disponível sem custo adicional. Cota excedida os limites de solicitações não acarreta cobranças adicionais e sua conta não é faturada.
Solicitar aumento de cota
Dependendo do uso de recursos do seu projeto, talvez seja necessário solicitar uma cota aumentam. Considera-se que chamadas de API por uma conta de serviço usam um conta única. A solicitação para aumentar a cota não garante a aprovação. Grande os aumentos de cota podem levar mais tempo para serem aprovados.
Nem todos os projetos têm as mesmas cotas. Conforme você usa cada vez mais o Google Cloud as cotas podem precisar aumentar. Se você espera um futuro incrível de uso, você poderá tomar medidas solicitar ajustes de cota na página "Cotas" no console do Google Cloud.
Para saber mais, consulte os recursos a seguir:
- Sobre solicitações de aumento de cota
- Ver o uso e os limites atuais da sua cota
- Solicitar um limite de cota maior