2 votes

comment effacer correctement le cache de l'apc php avec capistrano

Nous utilisons capistrano pour déployer notre application PHP. et php-apc est activé sur le serveur de production avec apc.stat = 0. Dans la configuration de capistrano, il y a une règle pour vider le cache apc après deploy:update :

after "deploy:update", "clear_apc_cache"

le cache a été vidé avec succès : apc.php 'View Host Stats' montre un temps de fonctionnement de 0 minute, le nombre de fichiers mis en cache et de hits est proche de 0 (pas 0 car il y a beaucoup de trafic et certains fichiers sont mis en cache avant que nous puissions vérifier apc.php)

Le problème est que parfois, un ancien fichier est toujours mis en cache dans apc. Je pense que cela est dû à une requête HTTP qui commence avant que capistrano ne mette à jour le lien symbolique 'current' et qui se termine après que nous ayons effacé le cache de l'apc. Dans ce cas, le fichier inclus après l'effacement de l'apc dans cette requête provient toujours de l'ancien dossier de révision (nous utilisons un chemin relatif dans include). et exigent s) et sont sauvegardés dans le cache de l'apc

Existe-t-il un moyen de corriger ce problème de façon permanente, sans mettre à jour tous les programmes ? et exigent s ?

pour l'instant je vais essayer de retarder le "clear_apc_cache" d'une ou deux secondes mais j'ai peur que cela cause d'autres problèmes pendant le délai (et certaines requêtes pourraient encore être plus longues que 2 secondes)

2voto

parhamr Points 270

Cette réponse vous devez passer un argument à clear_apc_cache et cela uniquement avec apc.enable_cli=1 le travail de nettoyage du cache d'APC par des appels CLI.

Vous pourriez vouloir clear_apc_cache à nouveau avec le after:restart pour s'assurer que la version précédente est entièrement effacée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X