En un proyecto legado bastante grande, he refabricado varios módulos peludos en las clases de Moose. Cada uno de estos módulos requiere que el acceso a la base de datos (lazy) recupere sus atributos. Dado que esos objetos se usan bastante, quiero reducir el número de solicitudes redundantes, por ejemplo, para datos sin cambios.¿Cómo reduzco el número de solicitudes redundantes con mod_perl correctamente?
Ahora, ¿cómo hago eso correctamente? Tengo varias alternativas:
- implementar la caché en mis clases de los alces a través de un papel para almacenarlos en
memcached
con vencimiento de 5-10 minutos (probablemente no es demasiado difícil, pero difícil con los atributos lazy) actualización: KiokuDB probablemente podría ayudar aquí, tiene que leer acerca de los atributos - Migrar a
DBIx::Class
(hay que hacer de todos modos) e implementar el almacenamiento en caché en este nivel (DBIC probable que tome la mayor parte del dolor de distancia sólo por sí mismo) - de alguna manera hacer mis objetos persisten dentro del proceso mod_perl (no hay manera de hacer esto :()
¿Cómo harías esto y qué consideras de una manera sensata? ¿Se prefieren los datos de almacenamiento en caché en el objeto o en el nivel de ORM?