2017-04-03 6 views
0

簡単な質問です。 EP#168 RailsCastsを見て、次のコードを渡って来た後:いつどこでself.update_from_feed_continuouslyを呼び出すのですか?

class FeedEntry < ActiveRecord::Base 
    def self.update_from_feed(feed_url) 
    feed = Feedzirra::Feed.fetch_and_parse(feed_url) 
    add_entries(feed.entries) 
    end 

    def self.update_from_feed_continuously(feed_url, delay_interval = 15.minutes) 
    feed = Feedzirra::Feed.fetch_and_parse(feed_url) 
    add_entries(feed.entries) 
    loop do 
     sleep delay_interval 
     feed = Feedzirra::Feed.update(feed) 
     add_entries(feed.new_entries) if feed.updated? 
    end 
    end 

    private 

    def self.add_entries(entries) 
    entries.each do |entry| 
     unless exists? :guid => entry.id 
     create!(
      :name   => entry.title, 
      :summary  => entry.summary, 
      :url   => entry.url, 
      :published_at => entry.published, 
      :guid   => entry.id 
     ) 
     end 
    end 
    end 
end 

私は(何とか、何とか)self.update_from_feed_continuouslyメソッドを呼び出す必要がありますここで、/とき自分自身を求めていますか?それは私のフィードコントローラ、またはビュー(すなわち、インデックス、ショーなど)になる予定ですか

何か助けが大歓迎です。この質問はしばらく私を悩ましています...

答えて

1

これは、入力URLからのフィードを連続的に取得する単なる方法です。

どこでも呼び出すことができますが、状況によって異なります。

フィードURLをcontrollerから送信するときは、controllerでメソッドを呼び出します。

あなたはフィードタスクを定期的に実行する必要があると判断した場合には、それはwheneverhttps://github.com/javan/whenever

を通じて rakeタスクで呼び出すことができます
関連する問題