tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
207
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    May 2007
    Ort
    Köln / Bonn
    Beiträge
    844
    Blog-Einträge
    4
    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 :>
     
    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Vielleicht solltest du mit persistenten Datenbankverbindungen arbeiten, wenn die Kosten dafür so hoch sind.
     
    Markus Wulftange

  3. #3
    Registriert seit
    May 2007
    Ort
    Köln / Bonn
    Beiträge
    844
    Blog-Einträge
    4
    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-Code:
    <?
    $fp 
    = @fsockopen ("server.de"3306$errno$errstr3); 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.
     
    Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    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.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Aktion nach Timelimit erneut startet
    Von steyrblade im Forum PHP
    Antworten: 4
    Letzter Beitrag: 25.06.07, 13:24
  2. Antworten: 2
    Letzter Beitrag: 10.07.06, 20:25