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