Limitación de tasa
Aplicamos límites de tasa para garantizar que ningún cliente se vea afectado negativamente por el uso de cualquier otro cliente. El código de integración con errores puede hacer que se envíen demasiadas solicitudes en un breve período de tiempo, lo que puede dar lugar a facturas excesivamente elevadas o a mayores tiempos de espera en cola.
Tenemos establecidos tres límites relacionados con Assembly:
- Los clientes pueden crear hasta 250 Assemblies por minuto.
- Por defecto, cada Workspace puede tener 2500 Assemblies ejecutándose al mismo tiempo en cada región.
- Por defecto, una Assembly puede pasar hasta 8 horas en la fase de carga y después hasta otras 8 horas en la fase de ejecución. Estos límites por fase son independientes, por lo que su duración total, de principio a fin, puede acercarse a 16 horas.
Según nuestra experiencia, esto satisface incluso los niveles de uso más elevados, pero las cuentas empresariales pueden ponerse en contacto con nosotros si necesitan límites más altos.
Los límites se aplican principalmente para proteger a los clientes de los errores de programación de tipo «bucle infinito» de otros clientes.
Los clientes que alcanzan un límite de creación o concurrencia reciben un error RATE_LIMIT_REACHED y el código de estado HTTP
429. El contenido JSON de este error incluye una propiedad info.retryIn que indica el número
de segundos de espera recomendado antes de volver a intentar la solicitud. Esto no garantiza que
haya capacidad de ejecución simultánea disponible después de ese tiempo de espera. Si usas uno de nuestros
SDK oficiales, ya se incluyen las esperas y los reintentos adecuados basados en esta información.
A continuación se muestra un ejemplo de cómo podría ser el contenido JSON:
{
"error": "RATE_LIMIT_REACHED",
"message": "Request limit reached",
"info": {
"retryIn": 41
}
}
Superar el límite de tiempo de carga o ejecución de una Assembly es diferente: se registra
ASSEMBLY_EXPIRED en el Assembly Status. La respuesta de estado puede usar HTTP 200, así que
revisa su campo error en lugar de interpretar el éxito HTTP como éxito del procesamiento. La espera
no reanuda una Assembly caducada. Si sus archivos de entrada aún se pueden recuperar,
reejecuta la Assembly para iniciar una nueva.
Límite de tasa de alta frecuencia
Además de los límites de tasa anteriores, existe otro mecanismo de limitación de tasa para disuadir el envío de solicitudes con demasiada rapidez. Este límite de tasa se activará en cualquiera de estos casos:
- Si hay demasiadas conexiones TCP abiertas simultáneamente desde un mismo cliente
- Si se han abierto demasiadas conexiones TCP en los últimos 10 segundos desde un mismo cliente
- Si se han producido demasiados códigos de error HTTP en los últimos 10 segundos desde un mismo cliente
- Si se han enviado demasiadas solicitudes HTTP en los últimos 10 segundos desde un mismo cliente
En estos casos, el cliente recibirá un código de estado HTTP 429, y la respuesta contendrá el
siguiente contenido JSON:
{
"error": "429 Too Many Requests",
"hostname": "morven.transloadit.com",
"message": "You have sent too many requests in a given amount of time. "
}