Можно ли использовать отслеживание событий API Календаря Google, не рискуя превысить квоты использования? - PullRequest
0 голосов
/ 22 ноября 2018

Я использую API Календаря Google для предварительной обработки добавляемых событий (настройте их содержимое в зависимости от определенных значений, которые они могут содержать).Это означает, что теоретически мне нужно обновлять любое количество событий в любой момент времени, в зависимости от того, сколько их создано.

В API Календаря Google есть квоты использования, особенно одна, в которой указывается максимум 500 операций в 100 секунд.

Для решения этой проблемы я использую основанный на времени триггер (каждые 2 минуты), который выполняет до 500 операций (и обновляет токены синхронизации только после обработки всех событий).Недостатком этого подхода является то, что мне приходится каждые две минуты проверять, действительно ли что-то изменилось.

Я хотел бы заменить основанный на времени триггер на часы.Однако я не уверен, есть ли какой-либо способ ограничить количество вызовов, чтобы я мог гарантировать, что квота в 100 секунд не будет превышена.

Мои исследования пока показывают, что это невозможно сделать.Я надеюсь, что я не прав.Любые идеи о том, как это можно решить?

1 Ответ

0 голосов
/ 23 ноября 2018

AFAIK, это одна из лучших практик, предлагаемых Google.Использование отслеживания и push-уведомлений позволяет исключить дополнительные сетевые и вычислительные затраты, связанные с ресурсами опроса, чтобы определить, изменились ли они.Вот несколько советов, как лучше всего работать в рамках квоты из этого блога :

  • Используйте push-уведомления вместо опроса.
  • Если вы не можете избежатьопрос, убедитесь, что вы проводите опрос только в случае необходимости (например, очень редко ночью).
  • Используйте инкрементную синхронизацию с токенами синхронизации для всех коллекций, а не повторно извлекайте все записи.
  • Увеличить страницуразмер для одновременного получения большего количества данных с помощью параметра maxResults.
  • Обновляйте события при их изменении, избегайте повторного создания всех событий при каждой синхронизации.
  • Используйте экспоненциальный откат для повторных попыток ошибки.

Также, если вы не можете избежать превышения вашего текущего лимита.Вы всегда можете запросить дополнительную квоту.

...