I'd consider using delayed_job. I don't think it's overkill. Polling sucks (at 
least, app-exposed polling does), and with delayed_job you can queue your trend 
creation in the background when the appropriate thing happens, instead of 
continually checking if it's required.

def trendy_action
  something_trendy
  Trend.send_later :data => data
end 

Using threads in any way within a rails instance is a bad idea, because it will 
cause problems with passenger and friends. It might seem to work in development 
for a bit, but you'll definitely have problems down the road.

--ben_h


On 2010/10/13, at 10:42, Joshua Partogi <[email protected]> wrote:

> Hi all,
> 
> I have another noobie question. After looking at last night
> presentation about Rails 3, I am wondering where do we put piece of
> code that runs on a separate thread for a long time every 5 seconds?
> e.g
> 
> Thread.new do
>  while true
>    queue = check_whether_there_is_something_new_in_the_queue
> 
>    while queue > 0
>      Trends.create(:data => queue.data)
>    end
> 
>    sleep 5
>  end
> end
> 
> 
> 1. I don't really like using cron to call `script/rails runner` as
> that will load the whole rails library which will choke the server
> because this process is run every 5 seconds.
> 2. I don't know about resque (which was mentioned by Ryan) yet, but
> since resque is a separate webapp, would resque know anything about
> the models in my Rails app?
> 
> 
> Any input is highly appreciated.
> 
> Kind regards,
> Josh
> 
> -- 
> http://twitter.com/scrum8
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby or Rails Oceania" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rails-oceania?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rails-oceania?hl=en.

Reply via email to