Administra las cuotas

Dado que la API de Calendario es un servicio compartido, aplicamos cuotas para asegurarnos de que todos los usuarios lo usen de forma justa. Si realizas muchas escrituras consecutivamente, es posible que tengas un límite de frecuencia. Consulta los límites de uso generales de Calendario para obtener más información. Además, existen dos cuotas relevantes para la API de Calendario:

  • Por minuto, por proyecto: Es la cantidad de solicitudes que realiza todo el proyecto. Esto puede aumentar si tu proyecto tiene muchos usuarios.
  • Por minuto, por proyecto y por usuario: Es la cantidad de solicitudes que realiza tu proyecto por parte de un usuario en particular (el usuario o la cuenta de servicio que realiza la solicitud, no el usuario propietario del calendario al que se accede). Por lo general, esto no se puede aumentar, por lo que es importante que te asegures de usar la API de manera eficiente.

Si se supera cualquiera de las cuotas, se te aplicará una limitación de frecuencia y recibirás una respuesta 403 “usageLimits” o una respuesta 429 a tus consultas. Si esto sucede, debes usar una retirada exponencial y volver a intentarlo más tarde. Además, puedes tener una limitación de frecuencia en cualquier momento por razones operativas, pero esto suele ser muy poco frecuente. Siempre que tu proyecto permanezca dentro de estas cuotas, no habrá un límite para la cantidad de solicitudes que se pueden realizar por día.

Las cuotas se calculan por minuto mediante una ventana deslizante, por lo que un pico de actividad rápido de tráfico que exceda la cuota por minuto durante un minuto dará como resultado el límite de frecuencia durante la siguiente ventana para garantizar que, en promedio, tu uso se mantenga dentro de los límites.

Si deseas ver o cambiar los límites de uso de tu proyecto, o solicitar un aumento de la cuota, haz lo siguiente:

  1. Si no tienes una cuenta de facturación para tu proyecto, crea una.
  2. Visita la página de API habilitadas de la biblioteca de API en la Consola de API y selecciona una API de la lista.
  3. Si deseas consultar y cambiar la configuración de cuotas, selecciona la opción Cuotas. Para consultar las estadísticas de uso, selecciona la opción Uso.

Usar retirada exponencial

Cuando queremos que disminuyas la frecuencia de tus solicitudes, se mostrará una respuesta 403 “usageLimits” o una respuesta 429 (consulta la documentación de errores completa). Este no es un error fatal y esperamos que vuelvas a intentar la solicitud después de un breve intervalo. Si las solicitudes todavía llegan demasiado rápido, lo preguntaremos de nuevo, y así sucesivamente. Para que esto funcione de manera correcta, es importante que las demoras entre las solicitudes aumenten con el tiempo.

En general, debes usar la retirada exponencial truncada; la documentación de Cloud Storage tiene una buena explicación de cómo funciona esto y el algoritmo preferido. Si usas una biblioteca cliente de Google, por lo general, esto se manejará por ti; consulta la documentación de la biblioteca. Por lo general, debes usar la implementación de la biblioteca en lugar de escribir la tuya.

Aleatorizar patrones de tráfico

Los clientes de calendario son propensos a los aumentos repentinos de patrones de tráfico causados por varios clientes que realizan operaciones al mismo tiempo. Por ejemplo, un antipatrón común es que un cliente de Calendario realice una sincronización completa a la medianoche. Esto garantiza que superarás tu cuota por minuto, lo que tendrá como resultado el límite de frecuencia y las retiradas.

Para evitar que esto suceda, asegúrate de que el tráfico esté distribuido durante todo el día siempre que sea posible. Si tu cliente necesita realizar una sincronización diaria, haz que este determine una hora aleatoria (diferente para cada cliente). Si necesitas realizar una operación de forma periódica, varía el intervalo +/- 25%. Esto distribuirá el tráfico de manera más uniforme y brindará una experiencia del usuario mucho mejor.

Cómo usar las notificaciones push

Un caso práctico común es querer realizar una acción cada vez que cambie algo en el calendario del usuario. Un antipatrón aquí es consultar repetidamente cada calendario de interés. Esto agotará rápidamente tu cuota, por ejemplo, si tu aplicación tiene 5,000 usuarios y consulta el calendario de cada usuario una vez por minuto, se requerirá una cuota por minuto de al menos 5,000, incluso antes de que se realice cualquier trabajo.

Las aplicaciones del servidor pueden registrarse para recibir notificaciones push, lo que nos permite notificarte cuando sucede algo de interés. Estas tareas requieren más trabajo de configuración, pero permiten un uso mucho más eficiente de tu cuota y ofrecen una mejor experiencia del usuario. Para obtener más información, consulta Notificaciones push.

Contabilidad adecuada con cuentas de servicio

Si tu aplicación realiza solicitudes mediante la delegación en todo el dominio, de forma predeterminada, se cobra la cuenta de servicio en relación con las cuotas “por minuto, por proyecto y por usuario”, y no por el usuario al que suplantas. Esto significa que es probable que la cuenta de servicio se quede sin cuota y tenga un límite de frecuencia, aunque funcione en los calendarios de varios usuarios. Puedes evitar esto si usas el parámetro de URL quotaUser (o el encabezado HTTP x-goog-quota-user) para indicar a qué usuario se le cobrará. Esto solo se usa para los cálculos de cuotas. Consulta Limita las solicitudes por usuario en la documentación de Cloud para obtener más información.

Control del límite de cuota de prueba

Para asegurarte de que la aplicación pueda manejar correctamente los límites de cuota en la práctica (p.ej., realiza reintentos con la retirada exponencial) y minimizar las posibles interrupciones para los usuarios, te recomendamos que pruebes esta situación en un entorno real.

Para que esta prueba no interfiera en el uso real de tu aplicación, recomendamos que registres un proyecto independiente solo de prueba en la Consola de API de Google y que lo configures de manera similar a tu proyecto de producción. Luego, puedes establecer cuotas bajas artificialmente bajas para este proyecto y observar el comportamiento de tu aplicación.

Precios

Todo el uso de la API del Calendario de Google está disponible sin costo adicional. Exceder los límites de solicitudes de cuota no genera cargos adicionales y no se le factura a su cuenta.