2013-07-21 2 views
16

Используя отладчик api google url, он работал нормально, пока я не начал тестирование при загрузке. Быстро начал возвращаться 403 Rate Limit Превышенные ошибки от Google, хотя я подписался на использование API, и он поставляется с 1 000 000 обращений в день. Я могу видеть запросы, поступающие в инструмент отчетности Google, и они просто отправляют обратно 403 для всего. 403 начали возвращаться примерно в 345/350 хитов в API, продолжались часами.Ошибка URL-адреса Google 403 Превышена предел скорости

Мысли?

+0

Выполняете ли вы все запросы с одного и того же IP-номера? –

ответ

-5

Вы должны пойти на расширение Shortener Google, а также в опции выбора

+2

Этот вопрос не спрашивает о расширении google chrome, но связан с потреблением сервиса через API и использованием ограничений скорости. – timbrown

7

Пределы API запросов «Предоставление доступа» 1 запроса/в секунду/на одного пользователя.

Пользователь определяется как уникальный IP-адрес.

Итак, если вы проводили тестирование нагрузки с одного IP-адреса, это могло бы вызвать проблему с лимитом.

https://developers.google.com/analytics/devguides/reporting/mcf/v3/limits-quotas#general_api

+0

Является ли это документированным где-то? Кажется, я не мог найти никакой информации, превышающей предел 1 000 000 в день. У меня возникла эта проблема, когда пользователи ударяли мой API с большим количеством запросов, которые, кажется, превышают лимит «1 запрос/в секунду/на пользователя» – timbrown

+2

https://developers.google.com/analytics/devguides/reporting/ mcf/v3/limits-quotas # general_api – Chausser

+0

Спасибо за это. Похоже, вы можете изменить тарифную ставку до ~ PER USER LIMIT 1 request/second/user ~, но при попытке сохранить это выдает ошибку 500. Я что-то упустил, чтобы увеличить его до 10/сек/пользователь? – timbrown

-8

Щелкните правой кнопкой мыши на значок расширения, выберите Функции и нажмите Предоставить доступ снизу.

1

Я не думаю, что «1 запрос/в секунду/на пользователя». как написано в документе, на 100% правильно в моем случае, или в случае с коротким url shortener. (FYI: Я использую «Открытый доступ к API», а не «OAuth»)

У меня почти такая же проблема, но для меня это более вероятно: «Я получаю эту ошибку для некоторых URL-адресов в течение некоторого периода времени раз «. Что это значит? Продолжайте читать.

Это то, что я нашел:

  • я могу использовать 10 потоков, чтобы использовать Google URL Shortener в то же время, но не всегда ...
  • при обработке, даже один URL является сбой на одном нить, другие потоки все равно могут получить другие URL-адреса.
  • , когда URL-адрес терпит неудачу, и позже я снова попробовал тот же URL-адрес (даже никаких других процессов не работает, он по-прежнему не работает в течение некоторого периода времени. Даже я попытался добавить еще строку типа «& test = 1 », это не помогает, но если я перешел на другой URL-адрес, он будет работать.

Итак, я предполагаю, что на сервере google может быть кеш каждого URL-адреса. Если URL-адрес не работает, он должен ждать . в то время, чтобы кэш выпустил

Таким образом, я должен написать некоторый жуткий код, как это решить мою проблему:

  • , когда есть сбой, что конкретный поток будет спать в течение 1 минуты (да 1 минута)
  • и рвусь в 10 раз (так полностью, это может быть 10 минут для неисправности URL)

Однако этот жуткий код подходит для моего случая, потому что я использую ExecutorService с размером пула с фиксированным потоком 10. Так что, если есть сбой, другие все еще могут получить сокращенные URL-адреса. Это решает проблему ... по крайней мере для меня.

+0

, поскольку вы используете многопоточность, как можно поддерживать 1 запрос/секунду/на пользователя. так как будет больше одновременных запросов –

+0

@ManojRamanan, нет, я не поддерживал его. В моем объяснении было указано, что вы можете использовать более 1 запроса/секунду/на пользователя. –

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