Guias

Configure polling para uma grande tarefa em lote sem webhook

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.

Dividir em blocos em vez de enfileirar

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 "polling" realmente significa aqui

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.50

Criar um executor simples

Um 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.

Retomar depois de uma pausa

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.

Quanto custa

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.