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)