Limitación de tasa
Aplicamos límites de tasa para garantizar que el uso de un cliente determinado no afecte negativamente a otros clientes. Un código de integración con errores puede provocar el envío de demasiadas solicitudes en un período breve, lo que genera facturas excesivamente altas o mayores tiempos de espera en la cola.
Tenemos establecidos tres límites para las Assemblies:
- Los clientes pueden crear hasta 250 Assemblies por minuto.
- Los clientes pueden tener 250 Assemblies ejecutándose al mismo tiempo.
- Las Assemblies de los clientes pueden ejecutarse durante un máximo de 8 horas antes de que finalice el proceso.
Según nuestra experiencia, esto satisface incluso los niveles de uso más altos, pero las cuentas empresariales pueden contactarnos si necesitan límites más altos.
Los límites existen principalmente para proteger a los clientes de errores de programación de otros clientes del tipo «bucle infinito».
Los clientes que alcancen un límite de tasa recibirán un error RATE_LIMIT_REACHED y un código de estado HTTP
413. La carga útil JSON de este error contiene una propiedad info.retryIn que indica la cantidad
de segundos restantes hasta que se pueda crear otra Assembly. Si usas uno de nuestros
SDK oficiales, ya se incluyen las pausas y los reintentos adecuados en función de este valor.
El siguiente es un ejemplo de cómo podría verse la carga útil JSON:
{
"error": "RATE_LIMIT_REACHED",
"message": "Request limit reached",
"info": {
"retryIn": 41
}
}
Límite de tasa para alta frecuencia
Además de la limitación de tasa anterior, existe otro mecanismo de limitación de tasa para impedir que se realicen solicitudes con demasiada rapidez. Este límite de tasa se activa en cualquiera de estos casos:
- Si hay demasiadas conexiones TCP abiertas simultáneamente desde un cliente
- Si se abren demasiadas conexiones TCP en los últimos 10 segundos desde un cliente
- Si se producen demasiados códigos de error HTTP en los últimos 10 segundos desde un cliente
- Si se envían demasiadas solicitudes HTTP en los últimos 10 segundos desde un cliente
En estos casos, el cliente recibirá un código de estado HTTP 429 y la respuesta contendrá la
siguiente carga útil JSON:
{
"error": "429 Too Many Requests",
"message": "HAProxy thinks you have sent too many requests in a given amount of time. "
}