Sugestion - Background process

M

Marcelo Junior

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.
 
H

hemant

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 =3D nil)
logger.info "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D"
logger.info "=3D FEEDEEDO REFRESH =3D"
logger.info "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D"
logger.info "por Marcelo I. Machado Junior"

refresh
end

def refresh
blogs =3D 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 =3D FeedParser.new(self.link)
self.title =3D feed.title
self.description =3D feed.subtitle.html2text if feed.subtitle
#b.publication =3D feed.publication || Time.now

#=C9 percorrido cada item do feed e cadastrado no banco

feed.items.each do |item|
bi =3D BlogItem.create() do |i|
i.link =3D item.link
i.title =3D item.title
i.description =3D item.content.html2text
i.indexed_content =3D
Blog.prepare_content(item.content.html2text)
i.indexed_title =3D Blog.prepare_content(item.title || '')
#i.publication =3D 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.
 

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,598
Members
45,151
Latest member
JaclynMarl
Top