Можно ли использовать отслеживание событий API Календаря Google, не рискуя превысить квоты использования?
Я использую API Календаря Google для предварительной обработки добавляемых событий (изменяйте их содержимое в зависимости от определенных значений, которые они могут содержать). Это означает, что теоретически мне нужно обновлять любое количество событий в любой момент времени, в зависимости от того, сколько их создано.
В API Календаря Google есть квоты использования, особенно одна, в которой указывается максимум 500 операций за 100 секунд.
Для решения этой проблемы я использую основанный на времени триггер (каждые 2 минуты), который выполняет до 500 операций (и обновляет токены синхронизации только после обработки всех событий). Недостатком этого подхода является то, что мне приходится каждые две минуты проверять, действительно ли что-то изменилось.
Я хотел бы заменить основанный на времени триггер на часы. Однако я не уверен, есть ли какой-либо способ ограничить количество контрольных вызовов, чтобы гарантировать, что квота в 100 секунд не будет превышена.
Мои исследования показывают, что это невозможно. Я надеюсь, что я не прав. Любые идеи о том, как это можно решить?
1 ответ
AFAIK, это одна из лучших практик, предлагаемых Google. Использование отслеживания и push-уведомлений позволяет исключить дополнительные сетевые и вычислительные затраты, связанные с ресурсами опроса, чтобы определить, изменились ли они. Вот несколько советов, как лучше всего работать в рамках квоты из этого блога:
- Используйте push-уведомления вместо опроса.
- Если вы не можете избежать опроса, убедитесь, что вы опрашиваете только тогда, когда это необходимо (например, очень редко опрашивайте ночью).
- Используйте инкрементную синхронизацию с токенами синхронизации для всех коллекций вместо того, чтобы повторно извлекать все записи.
- Увеличьте размер страницы, чтобы получать больше данных одновременно с помощью параметра maxResults.
- Обновляйте события при их изменении, избегайте повторного создания всех событий при каждой синхронизации.
- Используйте экспоненциальный откат при повторных попытках ошибки.
Кроме того, если вы не можете избежать превышения вашего текущего лимита. Вы всегда можете запросить дополнительную квоту.