2010-08-31 5 views
3

Je suis nouveau à ruby ​​sur rails et je viens de commencer à regarder des rails de tutoriels.Comment chercher plusieurs flux simultanément

Pour analyser les flux, j'ai commencé à utiliser feed zirra.

Pour récupérer plusieurs flux à la fois, feedzirra a cette fonction

feed_urls = ["http://feeds.feedburner.com/PaulDixExplainsNothing", 
"http://feeds.feedburner.com/trottercashion"] 
feeds = Feedzirra::Feed.fetch_and_parse(feed_urls) 

Si j'ai 100 aliments, cette procédure prend un certain temps pour indexer le 100ème flux afin,

Comment analyser aller chercher tous ces disons 100 flux simultanément?

Perspectives d'avenir pour votre aide et le soutien

Répondre

6

Vous pouvez essayer de combiner Feedzirra pour l'analyse des aliments et Typhoeus pour concurency, quelque chose comme:

#!/usr/bin/env ruby 
require 'rubygems' 
require 'typhoeus' 
require 'feedzirra' 

feed_urls = ["http://feeds.feedburner.com/PaulDixExplainsNothing", "http://feeds.feedburner.com/trottercashion"] 

hydra = Typhoeus::Hydra.new 
feeds = {} 

feed_urls.each do |feed| 
     r = Typhoeus::Request.new(feed) 
     r.on_complete do |response| 
       feeds[r.url] = Feedzirra::Feed.parse(response.body) 
     end 
     hydra.queue r 
end 
hydra.run 
puts feeds.inspect 

L'idée est d'utiliser hydra à concurent. A vous alors de faire autre chose que d'inspecter ou de remplir la variable feeds.

Questions connexes