Рельсы опрашивают RSS каждые 6 часов - PullRequest
0 голосов
/ 18 февраля 2012

Я ищу совет о том, как опросить RSS с заданным интервалом, таким как 6 часов.

Следующий код работает, он читает и анализирует ленту и добавляет ее в базу данных.Это только добавляет новые каналы.Вот метод класса:

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 часов в коде, если это имеет смысл.Спасибо

1 Ответ

4 голосов
/ 18 февраля 2012

Нет, не имеет смысла не использовать cron для этого.Это то, для чего предназначен cron, это название программы.

Если вам не нравится синтаксис cron, это круто, всегда есть гем, https://github.com/javan/whenever, который дает хорошийСинтаксис Ruby для генерации задания cron и команды, которая позволяет вам это делать.

Однако, ради бога, не пытайтесь придумать новый способ сделать это, если только вы не добавляете некоторые убийственные функции,Используйте cron, двигайтесь дальше.

...