Now I got it! I was watched the railcast episode about delayed_job and there nobody told that in the background runs: rake jobs:work or something else to run the jobs from the list!!!
Now I will look into AJAX to get an update process bar or something... On 12 Mai, 17:12, Sebastian <[email protected]> wrote: > Thank you Peter for your reply! > > I will look into that deeper, but I think first I have to get my > method run in the background. > > I found delayed_job and I think that is exactly what I need, but I > can't get it to work!!! > > My method in my controller looks like this: > > def check > @watchedfamily = Check.new(params[:id]).watchedfamily > redirect_to watchedfamilies_path > end > > That calls a very large model called Check, which looks like this: > > class Check > attr_reader :watchedfamily > def initialize(id) > @watchedfamily = Watchedfamily.find(id) > ..... > .... > end > end > > I already tried in my controller: > > Check.new(params[:id]).delay > or > Delayed::Job.enqueue(Check.new(params[:id])) > > For the second try I changed my Check-Model like this: > > class Check < Struct.new(:id) > def perform > @watchedfamily = Watchedfamily.find(id) > ..... > .... > end > end > > Nothing worked at all! With the last option I get a entry in my > delayed_jobs table at least, but its never executed. I also tried > "rake jobs", but there I get an error: rake aborted! Don't know how to > build task 'jobs' > > I am in development and using WebBrick Server. > > I really have no clue how to get this to work!!! > > Kind regards > Sebastian > > On 12 Mai, 14:41, Peter De Berdt <[email protected]> wrote: > > > > > > > > > On 12 May 2011, at 13:19, Sebastian wrote: > > > > I have a button that links to a controller which is updating all my > > > entries in my db with new data, called from an external xml-based web > > > service. That can take several minutes, so I want to show the actual > > > progress in the view. > > > > What is the best approach to do that? Java, AJAX...??? > > > > I found many 'upload progress bars', but I don't want to upload a > > > file. > > > > I don't need a bar, it would be enough to show how many records are > > > left for updating, like this: > > > > 1/37 > > > ... > > > 11/37 > > > ... > > > 25/37 > > > ... > > > 37/37 done! > > > > Best way would be without refreshing the page! > > > You hand the task over to a background server, whichever flavor you > > prefer (Nanite+Redis, Beanstalkd, …). This means you can keep on > > serving other requests while the task is being done, as well as having > > your user browse to another page (and when he requests the status > > page, you just fetch the current progress). > > > There's several ways you can pass the progress to the view: > > - Periodical polling through Ajax > > - Some push server technology (there's a Railscast athttp://railscasts.com > > on this subject) > > > Best regards > > > Peter De Berdt -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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/rubyonrails-talk?hl=en.

