Проблема в том, что я постоянно получаю ошибку OVER_QUERY_LIMIT при попытке геокодировать местоположения драгоценных камней на карте Google. Я понимаю, что существует ограничение на скорость, с которой вы можете вызывать геокодер (а также дневной лимит на общий объем), поэтому мне нужно ввести паузу между каждым результатом в массиве.
Как мне приостановить / задержать метод Rails Controller, чтобы замедлить его?
geo_localization = "#{latitude},#{longitude}" query = Geocoder.search(geo_localization).first place = query.address





В определении метода добавьте сон, и это должно помочь вам
def geolocation
begin
...
rescue Geocoder::OverQueryLimitError
sleep 2
retry
end
end
Кроме того, есть альтернатива, у вас есть опция timeout, которая поставляется с геокодировать. Вам необходимо создать файл конфигурация / инициализаторы / geocoder.rb и установить следующее. Этот вариант я не тестировал.
Geocoder.configure(
timeout: 10
)
Взгляните также на это, это может быть любой из этих случаев для вас, и единственное, что вы можете сделать сейчас, это подождать.
Я попробую, но проблема «Ошибка Google API: превышение лимита запросов» все еще возникает
О каком размер ты говоришь?
Что вам нужно сделать, так это задержать, когда вы получите ошибку OVER_QUERY_LIMIT, а затем выполнить повторную попытку.
Позвольте нам продолжить обсуждение в чате.
Используйте спать внутри метода следующим образом:
sleep 2
Это будет спать 2 секунды.
Будьте осторожны, чтобы спорить. Если вы просто запустите спящий режим, процесс будет спать вечно. (Это полезно, если вы хотите, чтобы поток спал, пока он не проснулся.)
можем ли мы увеличить размер API геокодера. Ошибка Google API: превышено ограничение на количество запросов