Tengo una vista Django, que recibe parte de sus datos de un sitio web externo, que analizo usando urllib2/BeautifulSoup.Caché de Django: ¿se puede hacer de forma preventiva?
Esta operación es bastante cara, así que la guardo en caché utilizando la API de caché de bajo nivel, durante ~ 5 minutos. Sin embargo, cada usuario que accede al sitio después de que caduquen los datos en caché recibirá una demora significativa de unos segundos mientras voy al sitio externo para analizar los nuevos datos.
¿Hay alguna forma de cargar los nuevos datos perezosamente para que ningún usuario tenga ese tipo de retraso? ¿O es esto inevitable?
Tenga en cuenta que estoy en un servidor de alojamiento compartido, así que tenlo en cuenta con tus respuestas.
EDIT: gracias por la ayuda hasta ahora. Sin embargo, todavía no estoy seguro de cómo lograr esto con el script de Python que voy a llamar. Una prueba básica que hice muestra que el caché django no es global. Es decir, si lo llamo desde un script externo, no ve los datos de caché en el marco. Sugerencias?
Otro EDIT: volviendo a pensar en esto, esto es probablemente porque todavía estoy usando memoria caché local. Sospecho que si muevo el caché a Memcached, DB, lo que sea, esto será resuelto.
No estoy seguro de que te refieras perezosamente en este contexto. La memoria caché casi siempre se llena de forma perezosa, es decir, solo cuando es necesario. Creo que realmente estás hablando de analizar el material de otros sitios web de forma perezosa. –