Limite de taxa
Aplicamos limites de taxa para garantir que nenhum cliente seja prejudicado pelo uso feito por outro cliente. Código de integração com bugs pode fazer com que requisições demais sejam enviadas em um curto período de tempo, levando a faturas excessivamente altas ou a tempos de fila maiores.
Temos três limites de Assembly em vigor:
- Os clientes podem criar até 250 Assemblies por minuto.
- Por padrão, cada Workspace pode ter 2.500 Assemblies em execução ao mesmo tempo em cada região.
- Por padrão, uma Assembly pode passar até 8 horas em upload e depois até mais 8 horas em execução. Esses limites de fase são independentes, então seu tempo de vida de ponta a ponta pode chegar perto de 16 horas.
Pela nossa experiência, isso atende até o uso mais intenso, mas contas enterprise podem ficar à vontade para entrar em contato conosco caso precisem de limites maiores.
Os limites existem principalmente para proteger os clientes de bugs de programação do tipo “loop infinito” de outros clientes.
Clientes que atingem um limite de criação ou de concorrência recebem o erro RATE_LIMIT_REACHED e o código de status HTTP
429. O payload JSON desse erro contém a propriedade info.retryIn, que indica o número
de segundos do atraso de backoff recomendado antes de repetir a requisição. Isso não garante que
haverá capacidade concorrente disponível depois desse atraso. Se você usa um dos nossos
SDKs oficiais (English), os back-offs e as novas tentativas baseados nisso já estão incluídos.
Veja a seguir um exemplo de como o payload JSON pode ser:
{
"error": "RATE_LIMIT_REACHED",
"message": "Request limit reached",
"info": {
"retryIn": 41
}
}
Exceder o limite de tempo de upload ou de execução de uma Assembly é diferente: isso registra
ASSEMBLY_EXPIRED no Assembly Status. A resposta de status pode usar HTTP 200, então
inspecione o campo error dela em vez de tratar o sucesso HTTP como sucesso de processamento. O backoff
não retoma uma Assembly expirada. Se os arquivos de entrada dela ainda puderem ser recuperados,
faça o replay da Assembly para iniciar uma nova.
Limite de taxa de alta frequência
Além da limitação de taxa acima, existe também outro mecanismo de limitação de taxa para conter requisições rápidas demais. Esse limite de taxa é acionado em qualquer um destes casos:
- Se houver conexões TCP abertas simultaneamente demais a partir de um mesmo cliente
- Se conexões TCP demais forem abertas nos últimos 10 segundos a partir de um mesmo cliente
- Se códigos de erro HTTP demais tiverem ocorrido nos últimos 10 segundos a partir de um mesmo cliente
- Se requisições HTTP demais tiverem sido enviadas nos últimos 10 segundos a partir de um mesmo cliente
Nesses casos, o cliente receberá o código de status HTTP 429, e a resposta conterá o
seguinte payload JSON:
{
"error": "429 Too Many Requests",
"hostname": "morven.transloadit.com",
"message": "You have sent too many requests in a given amount of time. "
}