PHP MySQL set Timeout de la Connexion
Il y a certains postes sur la connexion MySQL définir le temps de PHP utilisant mysql.connect_timeout. Je veux savoir si ce set timeout PHP juste le temps de sortir la première connexion à MySQL ou valide pour une requête de base de données?
Mon cas, c'est que j'ai une page avec connexion à MySQL sur le dessus et puis je suis de l'exécution de dire 3-4 requêtes pour MySQL, l'un après l'autre. 1er et 2ème requête pris seulement 1 à 2 secondes à s'exécuter, où en tant que 3e requête prend 20 secondes. Maintenant, dans les cas lors de la 3ème requête prend plus de 20 secondes, je veux demander un temps mort. Donc, la question qui se pose ici est que, mettant cette fois à partir de PHP est applicable à la première connexion de base de données ou il est applicable à chaque requête suivante (de façon indépendante). Si plus tard, c'est le cas, alors comment je peux le mettre en attente au bout de 20 secondes pour la 3ème requête?
OriginalL'auteur kb0000 | 2012-03-05
Vous devez vous connecter pour publier un commentaire.
La connect_timeout paramètre est valide uniquement au moment de la connexion. Il est utile de vérifier si votre serveur de base de données est accessible en 20 secondes. Une fois connecté, le délai spécifié n'est plus valide.
Je ne trouve pas de requête de paramètre de délai d'attente sur officiel de mysql page de manuel: http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html donc je ne pense pas que ce soit possible.
OriginalL'auteur dAm2K
voir:
OriginalL'auteur gsdfghs4f5a74a
sigalarm est votre ami. Vous pouvez définir une alarme, et l'utilisation d'un gestionnaire de signal pour détecter le signal d'alarme.
http://php.net/manual/en/function.pcntl-alarm.php
OriginalL'auteur Sheer
Utilisez MySQL version 5.7.4 ou au-dessus et fixer des "max_statement_time" variable, la requête échoue si le délai est atteint
voir http://mysqlserverteam.com/server-side-select-statement-timeouts/
OriginalL'auteur Laurent PELE
Il est dans votre fichier de configuration de php. L'emplacement de ce fichier est différent d'un système à l'autre. Sur Ubuntu et Debian, il est situé dans /etc/php5/apache2/php.ini
Car un vaste que la configuration du système peut affecte à une autre application.
OriginalL'auteur Kareem
Vous auriez à fourche d'un processus enfant, le parent processus de tuer le processus de l'enfant si une condition n'est pas remplie dans un délai de 20 secondes.
Ou de l'utilisation d'un langage comme node.js cela ne veut pas bloquer le thread en cours pour une opération e /s comme une requête.
OriginalL'auteur Josh Ribakoff