问题是尝试对Google Map上的宝石位置进行地理编码时,我总是遇到OVER_QUERY_LIMIT错误。我了解您可以致电地理编码器的速率受到限制(以及每日总体积的限制),因此我需要在数组中每个结果之间引入一个暂停。
如何在Rails Controller方法中暂停/延迟以使其变慢?
geo_localization = "#{latitude},#{longitude}" query = Geocoder.search(geo_localization).first place = query.address
答案 0 :(得分:0)
在方法定义中添加sleep,这应该为您解决问题
def geolocation
begin
...
rescue Geocoder::OverQueryLimitError
sleep 2
retry
end
end
此外,还有一种替代方法,您可以选择地理编码随附的timeout
选项。您需要创建文件 config / initializers / geocoder.rb 并设置以下内容。这个选项,我还没有测试。
Geocoder.configure(
timeout: 10
)
也请看一下this,可能是您遇到的任何情况,现在唯一可以做的就是等待。
答案 1 :(得分:0)