He escrito una aplicación de Google App Engine que genera programáticamente un montón de código HTML que es realmente el mismo resultado para cada usuario que inicia sesión en mi sistema, y sé que esto va a ser en-eficiente cuando el código entra en producción. Por lo tanto, estoy tratando de encontrar la mejor manera de almacenar en caché las páginas generadas.Google App Engine - HTML generado en caché
La opción más probable es generar las páginas y escribirlas en la base de datos, y luego verificar la hora de la operación de puesta en la base de datos para una página dada en el momento en que se actualizó el código por última vez. Entonces, si el código es más reciente que el último puesto en la base de datos (para una solicitud HTML particular), se generará y servirá HTML nuevo, y se almacenará en caché en la base de datos. Si el código es anterior al último puesto en la base de datos, obtendré el código HTML directo de la base de datos y lo serviré (evitando así el desperdicio de CPU al generar el HTML). No solo estoy buscando minimizar los tiempos de carga, sino también minimizar el uso de la CPU.
Sin embargo, un problema que estoy teniendo es que no puedo averiguar cómo programar programicamente cuando se actualizó la versión del código cargado en el motor de la aplicación.
Estoy abierto a cualquier sugerencia sobre este enfoque, u otros enfoques para el almacenamiento en caché de html generado.
Tenga en cuenta que aunque Memcache podría ayudar en esta situación, creo que no es la solución final ya que solo necesito volver a generar html cuando se actualiza el código (en lugar de cada vez que expira memcache).
Pero ... ¡para eso es Memcache! A menos que generar el HTML tome mucho, mucho tiempo, lo estás pensando demasiado. –
Además, parece que el modelo de Memcache de App Engine solo almacena en caché los accesos al almacén de datos, no la generación de código: desde: http://code.google.com/appengine/docs/python/memcache/usingmemcache.html - Memcache es típicamente utilizado con el siguiente patrón: La aplicación recibe una consulta del usuario o la aplicación. La aplicación comprueba si los datos necesarios para satisfacer esa consulta están en Memcache. Si los datos están en Memcache, la aplicación usa esa información. Si los datos no están en Memcache, la aplicación consulta el almacén de datos y almacena los resultados en Memcache para futuras solicitudes. –
@Alexander - Puedes poner lo que quieras en Memcache, lo que están mencionando es el caso de uso típico. –