0
我有兩個模型公司和新聞 如何使新聞每30分鐘下載一次? 我已經通過寶石「只要」嘗試,什麼都不會發生如何讓新聞每30分鐘下載一次?
class Company < ActiveRecord::Base
after_save :load_news
def load_news
last_entry = self.news.last
if last_entry.nil?
feed = Feedzirra::Feed.fetch_and_parse(self.url)
else
feed = Feedzirra::Feed.fetch_and_parse(self.url,
:if_modified_since => last_entry.published_at.to_time)
end
Company.add_entries(feed.entries, self.id)
end
def self.update_all_feeds(urls)
Feedzirra::Feed.fetch_and_parse(urls,
:on_success => lambda { |url, feed|
rss = Comapny.select("companies.id").where(:url => url).first
Company.add_entries(feed.entries, rss.id)
}
)
end
end
class News < ActiveRecord::Base
attr_accessible :content, :guid, :name, :published_at, :summary, :url, :company_id
end
隨着一個名爲新聞類,我希望你有東西在你的初始化,以避免單一新聞項目簡稱爲「新」。這只是乞求與紅寶石的'新'方法衝突。我會將其重命名爲NewsItem或其他類似的。除此之外,你的每個配置究竟是什麼樣的?這項工作是否出現在您的cron工作中?對於每30分鐘進行一次背景提取,這並不是一個好方法。 – sockmonk
我沒有任何經驗。但是我會用delayed_job或者sidekick做時間的事情。 – Mindbreaker
@sockmonk'every 1.hours do runner「Company.load_news」 end' – Anton