Proyecto

General

Perfil

Correccion - Mejora #3792

Actualizado por Santiago Ramos hace casi 5 años

Intentar agilizar la respuesta de la aplicación usando un cache: 

 * Caché en memoria con persistencia 
 * Caché compartido para permitir su uso por varias instancias de la aplicación para un único dominio 

 La solución a probar es Redis usando el modo de bajo nivel. 

 <pre> 
 # app/models/gor_conf.rb 
 class GorConfig < ActiveRecord::Base 
   validates_uniqueness_of :name, message: _("Nombre de parámetro repetido."), case_sensitive: false 
   validates_presence_of     :name, message: _("Parámetro") + " " + _("no puede estar vacío.") 

   after_update :flush_cache 

   def self.getValue param_name 
     Rails.cache.fetch("GorConfig/#{param_name}", expires_in: 24.hours) do 
       gc = GorConfig.find_by_name(param_name.to_s) 
       gc ? gc.value : nil 
     end 
   end 

   private 

   def flush_cache 
     Rails.cache.delete("GorConfig/#{self.name}") 
   end 
 end 
 </pre>

Atrás