2011-01-22 11 views
0

次のスクリプトは私のためではなく、いくつかのレコード(一般的に100レコード)をフェッチした後、正常に動作し、それが失敗したと私にエラーを与える: - 一部を取得した後、時々問題が

Invalid JSON string 

とを500レコードは、座標の取得を停止します。 私はfecthいくつかの18000の任意の提案を調整する必要が??

task :populate_geolocations_reverse => :environment do 
    AdvocateDetail.order("id DESC").all.each do |advocate| 
    p advocate.id 
    if advocate.latitude.nil? or advocate.latitude==0 or advocate.latitude=="0" 
    p "fetching geolocations...:-(" 
    a = Geocoder.fetch_coordinates(advocate.address) 
    unless a.nil? 
     p "got geolocations... :-) " 
     advocate.latitude=a[0] 
     advocate.longitude=a[1] 
     p "saving geolocations...:-P " 
    advocate.save(false) 
    end 
else 
    p " already have geolocations for this Jumped....:-)" 
end 
end 
p "transformation done... " 

end 

答えて

0

Googleにはリクエストに対応するための制限がありますのでご注意ください。 1日あたり約1000件のリクエストと1秒あたり1件のリクエストがあります。私が知っているように、GeokitはGoogle自身よりも多くのサービスを使用していますが、依然として限られている可能性があります。それを詳しく見てみましょう。