Bonjour,
Il me vient à l'esprit une question concernant les accès concurrents et je n'arrive pas à trouver le réponse a ma question. Non pas qu'elle n'existe pas, mais il y a un point que je n'ai vu aborder explicitement nul part.
Si j'ai un serveur MySQL capable de gérer 10 accès concurrents provenant d'un site web dont la fréqentation se fait par pics, comment gérer au niveau de mon code PHP pour ne pas avoir d'erreur ?
je pense ré-écrire la fonction mysql_query() avec un algo un peu comparable à ça :
La ou je ne sais pas ce qui va se passer, c'est pour le mysql_errno() qui d'apres l'aide PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function my_query($req) { while(!($resultat = mysql_query($req))) { if ( mysql_errno() == 1040 ) usleep(10); else return false; } return $resultat; }
MySQL étant indépendant de Apache, je me demande donc, si quelqun d'autre effectue une requette et génère une erreur entre le moment ou je fait le mysql_query() et le mysql_errno() , vais-je récupérer son erreur ou cela est-il géré pour chaque session ouverte de la bdd ?Note that this function only returns the error code from the most recently executed MySQL function (not including mysql_error() and mysql_errno()), so if you want to use it, make sure you check the value before calling another MySQL function.
D'autre part, toujours dans l'optique de ne jamais avoir d'erreur d'execution d'une requette liée à un trop grand nombre d'accès, existe t-il des algorithmes plus performant pour gérer ce genre de problème ?
Je me demandais également s'il existait un système de mutex permettant de gérer des connexions à la base de données entre session PHP et ainsi mettre en place un système de file d'attente.
Merci de vos réponses.
Partager