Monitore o uso da sua chave antes de atingir um limite
Acompanhar seus cabeçalhos de cota ao longo do caminho mostra quando um limite está se aproximando, bem antes de uma requisição ser realmente rejeitada.
Algumas APIs devolvem um ID de trabalho para um lote grande e esperam que você faça polling ou aguarde um webhook enquanto ele é processado em segundo plano. Esta não funciona assim. Toda requisição em lote, grande ou pequena, é respondida de forma síncrona na mesma chamada, o que muda a forma como você deve pensar na execução de um trabalho muito grande.
Em vez de enviar um array enorme e esperar, divida um trabalho grande em blocos de tamanho fixo, de algumas centenas a alguns milhares de itens cada, e envie-os como uma sequência de requisições POST em lote comuns. Como cada chamada retorna os resultados imediatamente, não há status de trabalho para consultar, apenas o próximo bloco a enviar.
POST /v1/forward
Content-Type: application/json
["address 1", "address 2", "... up to a few hundred items"]O que mais se aproxima de polling nessa configuração é verificar os seus próprios cabeçalhos de cota entre os blocos, em vez de verificar o status de um trabalho. Leia X-Quota-Free-Remaining e X-Credits-Remaining depois que cada bloco for concluído e pause o trabalho, ou interrompa-o, se você estiver prestes a ultrapassar a sua cota diária gratuita sem crédito pré-pago suficiente para continuar.
X-Quota-Free-Remaining: 340
X-Credits-Remaining: 12.50Um pequeno script que percorre os blocos, envia cada um, verifica os cabeçalhos da resposta e continua ou pausa com base no que vê é tudo de que um grande trabalho em lote precisa aqui. Não existe um endpoint separado de status do trabalho para chamar, já que o bloco que você acabou de enviar já contém tudo o que você pediu.
Registre o índice do último bloco processado com sucesso, para que uma pausa por causa da renovação da cota ou de uma recarga de crédito possa ser retomada exatamente de onde parou, em vez de reprocessar blocos anteriores e gastar requisições duas vezes.
O custo é o mesmo de qualquer forma, uma requisição por item em todo o trabalho. A abordagem em blocos muda apenas a forma como você gerencia o trabalho, e não quantas requisições ele usa no total.
Tratar um trabalho grande como uma sequência de blocos síncronos comuns, em vez de procurar um sistema de trabalhos assíncronos que não existe aqui, mantém tudo simples. A documentação de limites de taxa cobre os cabeçalhos de cota que orientam esse padrão.