Допустим, я создаю простого бота на YouTube, отправляя большие пальцы на несколько видео.У меня есть несколько аккаунтов YouTube, подключенных к моему веб-приложению.Здесь можно предположить, что на практике каждые 5-10 минут нужно смотреть хотя бы одно видео, но обычно чаще.Мое веб-приложение запускается каждую минуту, чтобы найти новые видео, которые вам нравятся.Если он находит их, ему нравятся все.
Это фиктивный пример, но я хотел бы понять, как в действительности мы обновляем токены автономного доступа.
Поэтому я подключаю каждую из своих учетных записей Google к своему приложению Google через экран согласия access_type=offline
и сохраняю все свои токены обновления, по одному на учетную запись.Теперь, когда имеет смысл получить токены доступа, которые в случае Google живут 1 час?Вот некоторые стратегии, о которых я могу подумать:
- Обновлять токен доступа при каждом запросе, что составляет один раз в минуту для каждой учетной записи.Не храните токен доступа нигде, кроме как в переменной.Следующий поток cron (через минуту) просто сгенерирует новый токен доступа.
- Храните время жизни токенов доступа и при каждом новом потоке проверяйте, достаточно ли оно свежо для работы с ним, давая ему некоторый запас.Например, если осталось не менее 3 минут, используйте его.В противном случае создайте новый и используйте его.
- Всегда пытайтесь использовать токен доступа и обновляйте его только при ошибке.Это означает, что ничего не отслеживайте, просто перебор, используя все, что у вас есть.Если есть отказ в доступе, обновите токен.
Имеет ли какая-либо из этих стратегий больше смысла, чем другие?Как это делается в реальных веб-приложениях?