我正在寻求如何以给定的间隔(如6小时)轮询RSS的建议。
以下代码起作用,它读取并解析提要,并将其添加到数据库中。它只添加新的提要。这是类方法:
def self.update_from_feed(feed_url)
feed = Feedzirra::Feed.fetch_and_parse("http://feeds.feedburner.com/PaulDixExplainsNothing") #Example feed
feed.entries.each do |entry|
unless exists? :guid => entry.id
create!(
:name => entry.title,
:url => entry.url,
:published_at => entry.published,
:guid => entry.id
)
end
end
end
我如何每6个小时运行一次整个类的方法?我是Ruby(和Rails)的新手,所以任何帮助都将不胜感激。如果可能的话,我希望避免运行外部cron作业。如果有意义的话,我希望它在代码中每6小时运行一次。感谢
不,不使用cron是没有意义的。这就是cron的作用,它在程序的名称中。
如果你不喜欢cron语法,那很酷,只要,https://github.com/javan/whenever它为生成cron作业提供了一个很好的Ruby语法,并提供了一条允许您这样做的命令。
然而,出于上帝的爱,不要试图发明一种新的方法来做到这一点,除非你添加了一些杀手级的功能。使用cron,继续。