Bonjour, je prépare un nouveau système de mise en cache et je me pose une légère question concernant la gestion des fichiers.
J'explique le cas ci-dessous afin de rendre ma question plus compréhensible :
On créer une actualité :
_ elle s'ajoute dans la base de données.
Un utilisateur demande la page qui contient cette actualité :
- php vérifie s’il y a un fichier dans le dossier cache/actualite/44200.html
- Si le fichier existe on l'inclus dans la page.
- Sinon, on écrase le fichier (si existant) par la nouvelle actualité
- On l'inclut dans la page.
L'actualité est modifer :
_ On supprime le fichier 44200.html, après avoir effectué la modification dans la base de données
Ma question est :
Si plusieurs utilisateurs accèdent simultanément à une même actualité (numéro 44200) alors que le fichier 44200.html est supprimé à ce même moment. L'affichage de la page risque t'elle d'être altérer ?
Sachant que je vérifie si le fichier existe bien juste avant l'inclusion :
Pourquoi cette méthode ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if (!isset($_GET["id"]) or is_array($_GET["id"]) or !preg_match("#^[1-9]{1}[0-9]{0,9}$#", $_GET["id"])) { // erreur 404 exit; } $file = 'cache/actualite/'.$_GET["id"].'html'; if (file_exists($file)) { include($file); exit; } else { // on verifie si l'actualité existe dans la base de donnée // on genere la nouvelle actaulité dans le fichier si l'actu existe // sinon 404 }
Si je devais choisir de modifier le fichier, je devrais forcement demander à la base de données la date de la dernière modification et la comparer avec le fichier existant (donc 2 vérifications supplémentaires) !
Mais en supprimant le fichier, on s'assure donc que le fichier est périmer.
Donc l'affichage d'une actualité 99,9% du temps ne requière aucune connexion à la base de données.
Avec une forte affluence cette méthode risque t'elle de causer quelques soucis ?
Si un fichier est supprimer pendent l'inclusion de php, l'affichage se fais t'il correctement ou risque t'il d'être altéré.
PS : je préfère créer le script moi même pour plus de flexibilité
Qu'en pensez-vous ? Auriez-vous une meilleure méthode que celle présenter ?








Répondre avec citation
Partager