2015-05-16 4 views
0

У меня есть программа python, которая запрашивает youtube для получения деталей видео. Я использую версию-3 api. У меня есть несколько процессов m и пул python из 10 процессов в каждом процессе python.Ошибка клиента Youtube API python

songs_pool = Pool() 
songs_pool =Pool(processes=10) 
return_pool = songs_pool.map(getVideo,songs_list) 

Я получаю некоторые ошибки клиента, когда значение m увеличивается до более чем 2, а пул увеличен до> 5. Я получаю запрещенные ошибки. Когда я проверяю количество запросов в аналитике Google, это показывает, что количество запросов составляет 250 в секунду. Но, согласно документации, ограничение составляет 3000 запросов в секунду. Я не понимаю, почему я получаю ошибки клиента. Можете ли вы сказать мне, есть ли способ не получить эти ошибки и быстрее запустить программу.

Если m = 2 и process = 10, я не получаю ошибок, но для завершения требуется столько времени. Но если я их увеличу, то получаю клиентские ошибки, составляющие ~ 5% от всех запросов.

ответ

0

Пользовательский лимит составляет 3000 запросов в секунду от одного IP-адреса, и как только вы выйдете за это за определенную секунду, вы начнете получать запрещенные ошибки. Аналитика, которую вы видите в консоли разработчика, будет сообщать только ваше среднее количество запросов в течение 5 минут; поэтому, если у вас были нулевые запросы в течение 4 минут, затем начал выполнять вашу процедуру, консоль может отображать только 250 запросов в секунду (в среднем), но ваше приложение, вероятно, превысит лимит за данный период времени или два.

Кажется, что вы справляетесь с этим наилучшим образом, если скорость ваша забота; вы захотите запустить его достаточно быстро, чтобы получить очень небольшое количество ошибок (так что вы знаете, что вы остаетесь там на пределе). Другим вариантом, однако, может быть изучение использования etags; если вы часто запрашиваете информацию о одних и тех же видеороликах, вы можете позволить etags рассказать вам, изменилась ли какая-либо информация (и если API отвечает, что ничего не изменилось, оно не учитывает ни вашу квоту, ни ваши требования/сек.)

+0

Спасибо за ответ. Я попытаюсь использовать etags и посмотреть, уменьшит ли он ошибки. – Vaali

Смежные вопросы