Как получить несколько каналов одновременно - PullRequest
3 голосов
/ 31 августа 2010

Я новичок в ruby ​​на рельсах, и я только начал смотреть учебники по броскам рельсов.

Для разбора фидов я начал использовать zirra фидов.

Чтобы получать несколько фидов одновременно,Feedzirra имеет эту функцию

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

Если у меня есть 100 каналов, эта процедура занимает некоторое время для индексации 100-го канала, так что

Как проанализировать выборку всех этих, скажем, 100 каналов одновременно?

Ждем вашей помощи и поддержки

1 Ответ

6 голосов
/ 31 августа 2010

Вы можете попытаться объединить Feedzirra для разбора корма и Typhoeus для совпадения, что-то вроде:

#!/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

Идея состоит в том, чтобы использовать гидру для одновременного,Затем вы можете сделать что-то еще, кроме проверки или заполнения переменной feeds.

...