J'ai écrit une application Google App Engine qui génère par programme un ensemble de code HTML qui est vraiment la même sortie pour chaque utilisateur qui se connecte à mon système, et je sais que cela va être inefficace lorsque le code passe en production. Donc, j'essaie de trouver la meilleure façon de mettre en cache les pages générées. L'option la plus probable consiste à générer les pages et à les écrire dans la base de données, puis à vérifier l'heure de l'opération de mise en place de la base de données pour une page donnée par rapport à la dernière mise à jour du code. Ensuite, si le code est plus récent que le dernier mis à la base de données (pour une demande HTML particulière), le nouveau HTML sera généré et servi, et mis en cache dans la base de données. Si le code est plus ancien que le dernier mis à la base de données, alors je vais juste obtenir le HTML directement à partir de la base de données et le servir (évitant ainsi tout le gaspillage de CPU pour générer le HTML). Je ne cherche pas seulement à minimiser les temps de chargement, mais à minimiser l'utilisation du processeur. Cependant, un problème que j'ai, c'est que je ne peux pas comprendre comment vérifier par programme quand la version du code téléchargé sur le moteur de l'application a été mis à jour.Google App Engine - Caching généré HTML
Je suis ouvert à toutes les suggestions sur cette approche, ou d'autres approches pour la mise en cache html généré. Notez que bien que memcache puisse aider dans cette situation, je crois que ce n'est pas la solution finale puisque je n'ai vraiment besoin de recréer le html que lorsque le code est mis à jour (par opposition à chaque fois que memcache expire).
Mais ... c'est ce à quoi sert memcache! Sauf si la génération du HTML prend vraiment très, très longtemps, vous êtes en train de le surpasser. –
En outre, il semble que le modèle memcache App Engine ne met en cache que les accès au magasin de données, pas la génération de code: à partir de: http://code.google.com/appengine/docs/python/memcache/usingmemcache.html - Memcache est généralement utilisé avec le modèle suivant: L'application reçoit une requête de l'utilisateur ou de l'application. L'application vérifie si les données nécessaires pour satisfaire cette requête sont dans memcache. Si les données sont dans memcache, l'application utilise ces données. Si les données ne sont pas dans memcache, l'application interroge le magasin de données et stocke les résultats dans memcache pour les demandes futures. –
@Alexander - Vous pouvez mettre tout ce que vous voulez dans Memcache, ce qu'ils mentionnent est le cas d'utilisation typique. –