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
Post a Comment