PHP Timelimit

Michael Engel

Erfahrenes Mitglied
Irgendwie stehe ich gerade auf dem Schlauch, ich arbeite an einer teils statischen teils dynamischen seite. Manchmal kommt es vor das die Datenbankserver überlastet sind und die DB connects minutenlang brauchen, daher hängt er an den stellen und wartet volle 20 sekunden ab, und beendet dann an der time_limit grenze. Kann man per try und catch (oder was anderes) ihm sagen das er max 2 sekunden soll sich zu connecten und dann eben nicht das script abbrechen sondern anderst weiterlaufen.

$bla = mysql_connect()
if($bla)

geht nicht da der connect zwar gültig ist, aber zu lange braucht :>
 
Ich denke das das nichts bringen wird gegen das Problem. Da der Haupttraffic nicht von der Website kommt. Sondern da die Datenbank Intern stark verwendet wird. Und wenn große Updates anstehen sie über das Internet zu langsam wird.

Das einzige das ich gefunden habe währe eine Socket Connection vorher zu versuchen alla:

PHP:
<?
$fp = @fsockopen ("server.de", 3306, $errno, $errstr, 3); Sekunden
if ($fp === false) {
    $connid2 = false;
} else {
    fclose($fp);
    $connid2 = mysql_connect();
}
?>

Aber der weg gefällt mir nicht wirklich, da man den Server der ohnehin schon am Limit hängt bei jedem connect doppelt belästigt. :rolleyes:
 
Du könntest mit ini_set('mysql.connect_timeout', INT) dein Timeout beeinflussen. Das löst das Problem immer noch nicht, aber die Wartezeit des Webservers auf den DB-Server wird runtergesetzt und damit Ressourcen und die Nerven des Users gespart. Kombinieren könntest du das noch mit einer schönen Hinweisseite, dass das DB-System zum Zeitpunkt stark ausgelastet ist. Das sollte für alle Beteiligten das Beste sein.
 
Zurück