Proyecto

General

Perfil

Correccion - Mejora #3792

Agilizar aplicacíon usando cache

Añadido por Santiago Ramos hace más de 4 años. Actualizado hace más de 4 años.

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

100%


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

Histórico

#1 Actualizado por Santiago Ramos hace más de 4 años

  • Se actualizó Descripción (diff)

#2 Actualizado por Santiago Ramos hace más de 4 años

  • Categoría establecido a Desarrollo
  • Estado cambiado Nueva por Resuelta
  • Asignado a establecido a Santiago Ramos
  • Versión prevista establecido a 4.06
  • % Realizado cambiado 0 por 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.

Exportar a: Atom PDF

Financiado por:

Desarrollado por:
Software libre forjado en: