Я не думаю, что «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-адреса. Это решает проблему ... по крайней мере для меня.
Выполняете ли вы все запросы с одного и того же IP-номера? –