Proyecto

General

Perfil

Acciones

Correccion - Mejora #3792

cerrada

Agilizar aplicacíon usando cache

Añadido por Santiago Ramos hace alrededor de 5 años. Actualizado hace alrededor de 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:
Versión:

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

Actualizado por Santiago Ramos hace alrededor de 5 años

Acciones #2

Actualizado por Santiago Ramos hace alrededor de 5 años

  • Categoría establecido a Desarrollo
  • Estado cambiado de Nueva a Resuelta
  • Asignado a establecido a Santiago Ramos
  • Versión prevista establecido a 4.06
  • % Realizado cambiado de 0 a 100

Cerramos el ticket con la solución de cache ya implementada y ejemplos sobre el cálculo de presupuesto total de etapa y cálculos con condiciones de presupuestos y gastos de proyecto.

Se irán abriendo tickets individuales para cada mejora de cache concreta.

Acciones

Exportar a: Atom PDF