I have a method on my model that looks like this.

def self.itunes_update
  # don't run it if it's already running
  if Setting.first.update_lock?
    puts "updates locked"
  # it's not running right now so run it
  else
    all_apps = self.all
    all_apps.each do |app|
      # do stuff with each app
    end
  # job done, clear the lock
  end
end

It works fine, but it processes 10,000 records and takes about an hour
to run on heroku. I originally just had a rake task calling it every 3
hours but heroku were SIGTERMing it and suggested that I move it to
delayed_job, which I have done like this..

App.delay.itunes_update

it's working fine.

They do however suggest that I process this in batches or smaller
chunks. How would I do that, and does that sound like a good idea?

Also - do I need to do the locking any more, I think delayed job handles
it for me - that said, guess it doesn't do any harm?

best

bb

-- 
Posted via http://www.ruby-forum.com/.

-- 
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to