Rails每6小时轮询一次RSS



我正在寻求如何以给定的间隔(如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,继续。

最新更新