[pyar] Patrón para cachear queries en django?

Federico Apelhanz elmaildejapel en gmail.com
Jue Oct 29 11:42:10 ART 2015


gracias! creo que voy a implementar el decorador que dice Ezequiel.

Btw lo del formato anda hace bastante creo, no se porque nadie lo usa
jajaja.

@Pablo: Tengo un montón de información que debería estar en archivos
estáticos, que por limitaciones del entorno, y decisión del cliente, se
termino guardando en la BD, por lo que son datos inmutables, por otro lado,
también cacheo un setting que tienen ciertos usuarios por defecto, los
mismos pueden sobre escribirlo con lo que la cache deja de tener sentido el
momento que ellos hacen eso.

Saludos, y gracias a todos por las respuestas!

El 28 de octubre de 2015, 20:04, Pablo Mouzo <pablomouzo en gmail.com>
escribió:

> 2015-10-28 17:32 GMT-03:00 Federico Apelhanz <elmaildejapel en gmail.com>:
>
>> Bueno como dice el titulo, estoy teniendo 3 funciones ya que hacen
>> prácticamente lo mismo, y tienen este patrón en los que basicamente busco
>> un elemento en cache, por su key primaria, y si no lo encuentro busco en DB
>> (a veces tengo que hacer más de una query) y actualizo la cache:
>>
>> def get_value_from_cache(key):
>>     """Get the val from cache, or DB if it misses"""
>>
>>     val = cache.get(key)
>>     if not val:
>>         try:
>>             foo = Foo.objects.get(key)
>>             val = foo.value
>>             cache.set(key, val)
>>         except Foo.DoesNotExist:
>>             val = False
>>     return val
>>
>> La pregunta es, hay alguna mejor manera de hacer esto sin tener el mismo
>> código repetido miles de veces?
>>
>> Saludos ( Y sorry por el rich text si es que no se permite)
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
> Te recomiendo que no uses ese patrón hasta que sea absolutamente necesario
> porque descartaste todas las demás alternativas. Y si realmente necesitas
> cachear algo, preferentemente que sea inmutable.
>
> Cachear agregara más estado mutable que tenes que tener en cuenta cuando
> hagas cambios en el código. Tus tests van a probar la lógica con y sin
> cache? Si foo.value cambia, estas seguro que podés invalidar correctamente
> la cache? Vas a testear que la invalidación funcione correctamente? Como
> impacta a la performance de tu aplicación si tenés que hacerle un flush a
> la cache?
>
> Si nos das unos detalles más tal vez haya una solución mejor, si tenés
> queries lentos Django te da un par de formas para mejorar la performance.
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151029/df8f0461/attachment-0001.html>


More information about the pyar mailing list