0
我需要每分鐘做一個XML請求,然後將數據存儲在一個Medida
對象。每個Meter
對象有很多Medidas
(測量)。每當不運行方法好
class Meter < ActiveRecord::Base
has_one :user_type
has_one :user
has_many :medidas
attr_accessible :user_type_id, :user_id, :address, :etc
def read_data
u = User.find(self.user_id)
Medida.get_data(self.address,u.user_key, self.id)
end
class << self
def all_read_data
meters = Meter.all
meters.each do |meter|
meter.read_data
end
end
end
end
Medidas.rb看起來像
class Medida < ActiveRecord::Base
belongs_to :meter
attr_accessible :some_attr
class << self
def get_data(address,user_key, meter_id)
url="some_url_with#{variables}.xml?#{a_key}"
response = HTTParty.get(url)
hash = Hash.from_xml(response.to_s)
hash = Medida.some_funct(hash)
data = hash["ekmMeterReads"]["meter"]["read"]
#Save hash to bd
end
#def some_funct
end
end
我使用的是每當這個。這是我schedule.rb
看起來像
set :output, "#{path}/log/cron.log"
every 1.minutes do
runner "Meter.all_read_data, :environment => 'development'
end
的問題是,實際上只有一米的得到每分鐘的數據和所有其他人都離開了,沒有它。 This is我的cron.log
的內容(它有問題,但我沒有找到有用的信息。)
我在想什麼?感謝您的任何見解。
如果您在Rail控制檯中運行'Meter.all_read_data',是否會出現該錯誤? – 2013-02-12 21:56:14
它設法只保存一米(同一個),然後,檢索一個用戶(意思是進入'read_data'),然後失敗並出現這個錯誤(與cron.log中的錯誤相同): ' EOFError:到達文件結尾 – Sebastialonso 2013-02-13 12:43:14