2009-10-05 12 views
1

J'utilise ehcache avec mise en veille prolongée et je voudrais utiliser le cache de blocage ou SelfPopulating pour éviter les problèmes présentés dans http://ehcache.org/documentation/constructs-0_5.html#mozTocId722946utilisant décorateur bloquant ehcache avec mise en veille prolongée

Une opération coûteuse est nécessaire, par exemple le rendu une grande page Web, qui prend 30 secondes. La page n'est pas considérée comme périmée jusqu'à ce qu'elle ait 5 minutes. La page est frappée très fortement et sera touchée en moyenne 20 fois par minute toutes les 5 minutes.

Dois-je faire comme programme http://ehcache.org/documentation/cache_decorators.html suggère ou est-il un moyen de faire déclarative (en XML) ainsi?

merci beaucoup

+2

Je voudrais saisir cette occasion pour souligner que 'ehcache' est un palindrome. –

Répondre

1

Il n'y a aucun moyen de le faire dans ehcache.xml puisque vous devez vous inscrire avant la lecture du cache config de la classe avec le CacheManager.

Vous devez donc utiliser le code mentionné dans les documents et vous devez exécuter ce code avant de faire quoi que ce soit avec Hibernate. Un moyen simple de faire cela est d'utiliser la propriété hibernate.cache.provider_class qui indique à Hibernate une usine pour le cache. Jetez un oeil à la source of an implementation qui devrait vous donner une idée de ce que vous devez faire.

+0

Merci beaucoup pour cet aperçu. J'utilise déjà SingletonEhCacheProvider et l'implémentation est finale (je ne peux pas l'étendre). Dois-je dupliquer le code ou un filtre de servlet personnalisé ferait-il le travail? – cherouvim

+0

Vous devez dupliquer le code. –

Questions connexes