Limites e alternativas
“Request rate limit exceeded” ao renderizar ZPL
O que significa um limite por segundo numa API de renderização de ZPL, os três caminhos para contorná-lo, e como parar de esbarrar nele.
O que o erro quer dizer
Uma API de renderização de ZPL transforma cada prévia numa requisição HTTP e, para impedir que um usuário sature o serviço, essas requisições são limitadas por segundo. Passar do limite não põe sua requisição numa fila — rejeita — e é por isso que a falha chega como erro em vez de resposta lenta.
O limite é por segundo, não por dia, então este é o erro que vem de um laço. Um script renderizando um lote o mais rápido que consegue esbarra nele já nas primeiras dezenas; o mesmo script com uma pausa entre chamadas não esbarra nenhuma vez.
Consulte a documentação do próprio serviço para os números atuais. Operadores mudam esses valores, e um guia que fixa um número fica errado no dia seguinte.
Três caminhos
- 1Desacelere o laço. Uma pausa entre requisições que te mantenha abaixo da taxa documentada é a menor mudança possível, e custa só tempo de relógio. Acrescente uma repetição com recuo exponencial para as que falharem mesmo assim.
- 2Mande menos requisições. A maioria das APIs de renderização aceita várias etiquetas numa chamada e devolve várias imagens. Agrupar costuma render mais que espaçar, porque reduz a contagem de requisições em vez de distribuí-la.
- 3Renderize localmente. Um renderizador que roda no navegador não faz requisição nenhuma, então não há taxa a exceder. É a opção sem teto, e a troca é que um renderizador local não bate com a impressora em todos os comandos.
Como parar de esbarrar
A maior parte do problema de limite de taxa vem de visualizar no lugar errado do processo. Se toda etiqueta de um lote é renderizada para conferir o modelo, era o modelo que precisava ser conferido — uma vez, não duzentas.
Uma divisão útil é validar todas as etiquetas e renderizar só as que precisam de olhar. Um linter aponta um ^XA desbalanceado, um campo fora da borda da etiqueta ou um código de barras sem zona de silêncio sem desenhar nada, então não custa nada por etiqueta e pega quase tudo o que uma conferência visual pegaria.
^XA
^PW812
^LL1218
^FO50,50^A0N,50,50^FDRemessa 4821^FS
^BY3,3,120
^FO50,140^BCN,120,Y,N,N^FD0123456789^FS
^XZAbrir o visualizador ZPL
Renderize quantas etiquetas quiser, localmente, sem requisição a limitar e sem nada ser enviado.
Abrir o visualizador ZPLPerguntas frequentes
- Esperar e tentar de novo resolve?
- Para um caso isolado, sim — o limite é por segundo, então o segundo seguinte é um orçamento novo. Para um lote, repetir sem espaçar só esbarra no limite de novo um instante depois; acrescente uma pausa ou recue exponencialmente.
- Limite de taxa é o mesmo que cota diária?
- Não. Limite de taxa é a que velocidade você pode pedir, e reinicia constantemente; cota diária é quanto você pode pedir no total, e reinicia uma vez por dia. As soluções são diferentes — espaçar resolve um, e só reduzir volume resolve o outro.
- Visualizar no navegador tem limite de taxa?
- Não, porque não há requisição a limitar. A renderização acontece na sua máquina, então o único teto é a velocidade com que ela desenha.