Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je fais l'utilisation de Zend_Cache depuis quelques projets et tout fonctionne bien. J'utilise Zend_Cache avec le type file, qui créer plusieurs fichiers dans lequel il enregistre les donnés en cache dans un répertoire définis.
Lorsque des modifications sont fait aux sites, Zend recommence le système de cache en créant d'autres fichiers. Petits problèmes, il ne prend pas de termps avant que le poids des fichiers du cache soit considérablement élevé. À long terme, il risque d'avoir des problèmes.
Avec plusieurs recherche, j'ai découvert c'est fonctionnalité du Cache: automatic_cleaning_factor
Voici ce que dit la doc officiel:
automatic_cleaning_factor Integer default: 0
Active / désactive le nettoyage automatique ("garbage collector"): 0 signifie aucun nettoyage automatique de cache, 1 signifie un nettoyage systématique du cache et x > 1 signifie le nettoyage aléatoire 1 fois toute les x écritures.
J'ai intégré ceci dans mon système de cache en essayant les types de nettoyage...rien, les fichiers s'accumulent tout de même...
Est-ce qu'il y a une bonne et meilleur solution pour l'utilisation du cache type file afin d'éviter mon problème ?
Merci pour vos réponses
Dernière modification par probitaille (08-03-2010 15:13:40)
Hors ligne
Bon, je n'ai toujours rien trouvé à ce sujet...ya peu d'endroit qui en parle sur le web et peu d'explication sur le cleaning de cache pour ce que je veux faire...
Hors ligne
Je relance le sujet puisque j'arrive encore une fois à la même problématique...
Hors ligne
Up
Hors ligne
Bonjour j'ai le même pb....
Quelqu'un a des indications svp??
Hors ligne
J'ai trouvé en fait....
http://framework.zend.com/manual/1.10/f … heory.html
method "clean" ou "remove" sur le cache
Hors ligne
Néanmoins, ces méthodes ne permettent que des suppressions manuelles si je ne me trompe pas...
J'ai également essayé le "automatic_cleaning_factor" mais il ne supprime pas les fichiers...
Existe t-il une façon automatisé de supprimer les fichiers?
Hors ligne
Le cache a par défaut une option automatic_cleaning_factor à 10.
Ce qui signifie qu'1 fois tous les 10 appels à la fonction save(), il va tester la validité de tous les fichiers cachés.
Si ces derniers sont obsolètes, ou flagués comme telle, il les supprimera définitivement.
Ce mécanisme est de base dans Zend_Cache.
Si tes fichiers s'accumulent alors qu'il ne devrait pas, cela peut venir de plusieurs endroits :
- Utilises-tu un lifetime ?
- Lorsque tes données sont modifiées, les caches ont-ils le même 'id' qu'avant ?
- Utilises-tu de manière explicite les fonctions Zend_Cache->clean();
- Peut-tu montrer les configurations de ton cache.
Hors ligne
Merci d'avoir relancé le débat sur les fichiers de caches, en effet, j'ai plutôt opté pour un cron qui supprime tous les X jours les fichiers de caches générés dans un dossier dédié. Par contre, je ne dirais pas non si je découvre le problème que nous avons concernant le nettoyage automatique du cache.
My_Sic, Pour répondre à tes questions:
LifeTime: Oui, généralement je le mets entre 1 et 7 jours grâce à ces multiplications
'lifetime' => 60*60*24*7, // (60*60*24*15)temps de vie du cache en seconde/minutes/heures/jours
Id de Cache: Zend permet d'utiliser la cache grâce aux regex, j'utilise plutôt cette méthode en créant un seul cache qui sauvegarde toutes les pages que j'ai choisis (Voir config plus bas)
Clean(): Oui, cette méthode est utilisé dans mon système d'administration, chaque modification au site fait appel à cette méthode, par contre, celle-ci ne détruit pas les fichiers mais en génère de nouveau avec un identifiant différant
Voici mes configs, attention c'est un peu lourd:
$frontendOptions = array( 'lifetime' => 60*60*24*7, // (60*60*24*15)temps de vie du cache en seconde/minutes/heures/jours 'automatic_serialization' => true, 'automatic_cleaning_factor' => 15, 'caching' => true, 'debug_header' => true, 'memorize_headers' => array('Content-Type', 'Content-Language', 'Content-Disposition', 'Content-Length', 'Content-Transfer-Encoding', ), 'default_options' => array( // disable default caching for all requests 'cache' => false, 'cache_with_files_variables' => false, 'cache_with_post_variables' => false, 'cache_with_cookie_variables' => true, 'cache_with_session_variables' => true, 'cache_with_get_variables' => true, 'make_id_with_cookie_variables' => true, 'make_id_with_session_variables' => true, 'make_id_with_files_variables' => true, 'make_id_with_get_variables' => true, 'make_id_with_post_variables' => true, ), // cache routes to Index and News controllers 'regexps' => array( '^/$' => array('cache' => true), '^/index/' => array('cache' => true), '^/nouvelles' => array('cache' => true), '^/nouvelles/' => array('cache' => true), '^/calendar' => array('cache' => true), '^/contact' => array('cache' => true), '^/plandusite' => array('cache' => true), '^/admin' => array('cache' => false), '^/login' => array('cache' => false) ) ); $backendOptions = array( // Répertoire où stocker les fichiers de cache 'cache_dir' => 'tmp/', 'read_control' => true, 'read_control_type' => 'crc32', 'hashed_directory_level' => 0, 'file_name_prefix' => 'zend_cache' );
Dernière modification par probitaille (04-10-2010 14:53:53)
Hors ligne
La config me semble bonne (excepté make_id_with_files_variables et make_id_with_post_variables, qui devrait être à false dans ton cas).
As-tu essayé de faire des test en mettant un life time à quelques secondes ?
Lorsque tu lance la commande $cache->clean(Zend_Cache::CLEANING_MODE_OLD);, cela te supprime-t-il tes fichiers physiquement ?
Pour les ids, ils ne devraient pas changer si les url n'ont pas été modifié.
Hors ligne
Merci My_Sic
En effet, cette configuration "make_id_with_files_variables" à false permet de supprimer mes vieux fichiers de configurations lorsque le lifetime est atteint ou bien que le nombre d'appel est atteint ou lors d'un Zend_Cache::CLEANING_MODE.
En espérant que ça répond à la demande de "enjoy"
Hors ligne
Pages: 1