From: hemant Date: 2008-10-22T03:42:19+09:00 Subject: Re: Sugestion - Background process On Tue, Oct 21, 2008 at 9:33 PM, Marcelo Junior wrote: > Before reply Backgroundrb, leaves to explain my situation. I need make a > feed reader, and obvious, she need refreshing the feeds registreds. > Everything is running smoothly, and for to make the updater, I used > Backgroundrb. But, I can not more than one process of Backgroundrb. I'm > doing the following. > > WORKER > > class RefreshWorker < BackgrounDRb::MetaWorker > set_worker_name :refresh_worker > def create(args = nil) > logger.info "===========================================" > logger.info "= FEEDEEDO REFRESH =" > logger.info "===========================================" > logger.info "por Marcelo I. Machado Junior" > > refresh > end > > def refresh > blogs = Blog.find(:all) > blogs.each do |blog| > logger.info "#{Time.now.strftime('%d/%m/%y %H:%M:%S')} - > #{blog.title}" > blog.refresh > end > logger.info "#{blogs.size} blogs atualizados" > refresh > end > > > And the class Blog, I have the following: > > def refresh > begin > feed = FeedParser.new(self.link) > self.title = feed.title > self.description = feed.subtitle.html2text if feed.subtitle > #b.publication = feed.publication || Time.now > > #É percorrido cada item do feed e cadastrado no banco > > feed.items.each do |item| > bi = BlogItem.create() do |i| > i.link = item.link > i.title = item.title > i.description = item.content.html2text > i.indexed_content = > Blog.prepare_content(item.content.html2text) > i.indexed_title = Blog.prepare_content(item.title || '') > #i.publication = item.publication || Time.now > end > self.blog_items << bi > end > self.save > true > rescue > retry > end > end > > end > > But I want more instances, who knows, for a blog. You have two options: 1. Use MiddleMan.new_worker() to create more than one instance of your worker. Specifics I leave it to you. 2. Make feed fetching threaded in worker, using inbuilt thread pool.