6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/vnews/folder.rb', line 6
def self.update_folder(folder)
if folder.strip == "Starred"
puts "Sorry, you can't update the starred folder."
return
else
require 'vnews/display'
folder = Vnews::Display.strip_item_count(folder)
puts "Updating folder: #{folder.inspect}"
feeds = []
pool = ThreadPool.new(10)
puts "Using thread pool size of 10"
Vnews.sql_client.feeds_in_folder(folder.strip).each do |feed|
pool.process do
sleep(rand(10))
feeds << Vnews::Feed.fetch_feed(feed, folder)
end
end
pool.join
puts "Saving data to database"
feeds.select {|x| x[1]}.compact.each do |feed_url, f, folder|
Vnews::Feed.save_feed feed_url, f, folder
end
puts "\nDone"
end
end
|