Proyecto

General

Perfil

Acciones

Correccion - Mejora #3792

cerrada

Agilizar aplicacíon usando cache

Añadido por Santiago Ramos hace casi 5 años. Actualizado hace casi 5 años.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2019-08-27
Fecha fin:
% Realizado:

100%

Tiempo estimado:
Version:

Descripción

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.

# 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
Acciones

Exportar a: Atom PDF