Correccion - Mejora #3792
Actualizado por Santiago Ramos hace más de 4 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>
* 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>