Where to immediately request data, parse it and save in Rails app? -


new ruby , rails. i'm working on first app parse information xml hosted on server (i able through net/http). need able save parsed data sqlite database root of app loaded because i'll need access it.

i'm not entirely sure should initiate parse , save database in order have available root page loads up. should go in controller points root index (or should handled model somewhere)?

if there better/faster/more efficient way access , save data (as opposed parsing, seeing if information in database date , saving if not) appreciate suggestions.

thank you!

you need use delayed_jobs https://github.com/collectiveidea/delayed_job in initializer folder create file looks (this mine)

 delayed::worker.destroy_failed_jobs = false  delayed::worker.sleep_delay = 2  delayed::worker.max_run_time = 5.minutes  delayed::worker.read_ahead = 10  delayed::worker.default_queue_name = 'default'  if delayed::worker.delay_jobs   begin     scheduledworker.new.schedule   rescue => e     rails.logger.info e; honeybadger.notify e   end end  class scheduledworker    next_run_at = lambda { chronic.parse("next saturday") }   max_attempts = 1    def max_attempts     max_attempts   end    def process   end    def after     self.schedule unless rails.env.test?   end    def schedule     self.class.new.delay(run_at: next_run_at.call).process unless exists?   end    private    def exists?     delayed::job.where("handler '%#{self.class.name}%'").where(locked_at: nil, failed_at: nil).exists?    end end 

Comments

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -