Je dispose d'un JSP qui prendra environ 8 minutes à afficher. La logique de code elle-même ne peut pas être rendue plus efficace (elle mettra à jour souvent et sera mise à jour par fondamentalement un chef aux cheveux pointu). Je l'ai essayé emballage avec une couche de mise en cache commeCréation d'un modèle de cache asynchrone avec JSP
<%@ taglib uri="/WEB-INF/classes/oscache.tld" prefix="oscache" %>
<oscache:cache time="60">
<div class="pagecontent">
..... my logic
</div>
</oscache:cache>
C'est bien jusqu'à ce que 60 secondes est terminée. La requête suivante après cela bloque jusqu'à ce que les 8 minutes de rendu soient à nouveau effectuées. Je besoin d'un moyen de construire un modèle quelque chose comme:
- S'il n'y a pas de version du contenu dynamique dans le cache exécuter la logique réelle (et alimenter le cache pour les demandes ultérieures)
- En cas de la version non expirée du contenu dynamique dans le cache sert la sortie de la logique JSP du cache
- S'il existe une version expirée du contenu dynamique dans la mémoire cache, la sortie de la logique JSP reste depuis le cache ET exécutez la logique JSP en arrière-plan afin que le cache soit mis à jour de manière transparente pour l'utilisateur - avoi Ding l'utilisateur doit attendre 8 minutes
J'ai découvert qu'au moins EHCache pourrait être en mesure de faire une mise à jour de cache asynchrone mais il ne semble pas tristement s'appliquer aux balises JSP ... Aussi je dois prendre dans 10-20 paramètres pour la logique réelle de la JSP et certains d'entre eux devraient être utilisés comme une clé pour la mise en cache.
Un exemple de code et/ou des pointeurs seraient considérablement apprécié. Je ne m'en soucie pas franchement si la solution fournie est extrêmement laide. Je veux juste une mise en cache simple de 5 minutes avec mise à jour du cache asynchrone en prenant en compte certains paramètres comme une clé.