Есть некоторый список каналов, который я отслеживаю.
В понятие "отслеживаю" входит добавление новых видео канала. Делаю я это запросом:
https://www.googleapis.com/youtube/v3/search?part=snippet,id&type=video&channelId=key&key=key&order=date&maxResults=50
Запрос в задаче. Задача запускается каждые 20 минут с помощью CRON.
В сводке по квотам в ПУ Google API я вижу это (скриншот): https://i.stack.imgur.com/Y024z.png
То есть каждый запуск задача делает более 6000 запросов, хотя внутри задачи четко прописан один URL и четко прописан один запрос. В ответ я получаю список видео и никаких более запросов к YouTube Data API v3 я не делаю.
В чем проблема? Откуда такое число запросов?
ДОБАВЛЕНО
Прошли сутки. Сбросились квоты.
Я выполнил задачу, в которой было ровно 10 запросов (для 10 каналов) по URL, который я привел выше. Сам "запрос" производился этим кодом:
Net::HTTP.get_response(URI(URI.encode(url)))
Дальше я просто парсил JSON и записывал данные в БД.
А теперь самое интересное. До запуска задачи было 0 запросов. После запуска их стало 7140. То есть задача, которая имеет 10 итераций и один запрос в каждой итерации сделала 7140 запросов к YouTube Data API v3.
Серьезно? Я не понимаю в чем дело и как с этим быть...
Ответ
В YouTube Data API v3 запрос не равен квоте. Бесплатной учетной записи дан лимит в один миллион квот.
Если говорить простым языком, то каждый запрос имеет вес в виде квот. Вес вы определяете сами: https://developers.google.com/youtube/v3/docs/
Если брать конкретно мой пример (URL из моего вопроса), то в конце URL вы можете увидеть параметр maxResults, у которого есть значение в виде числа 50. Если вы замените 50 на, например, 5, то получите более "легкий" запрос, что в итоге выльется вам в меньшее кол-во использованных квот.
Таким образом все запросы к YouTube Data API v3 нужно максимально оптимизировать.
Комментариев нет:
Отправить комментарий