Warum timeout beim mailversand ?
Nicole
- webserver
Hallo erst mal ;-)
Dass bei ein paar hundert Emailempfänger ein
Timeout passiert und wie man das verhindert
weiss ich.
Aber warum passiert der Timeout überhaupt ?
Damit meine ich nicht:
"..weil scriptlaufzeit auf 30 sec. gestellt ist"
Sondern wo ist der Unterschied zwischen einer
Schleife die ewig lange weiterzählen kann und
dem Mailversand in einer Schleife?
Oder genauer:
Was passiert Serverintern, dass der Mailversand bei vielen Mails
ins Stocken gerät und langsamer wird, soooo laaaangsangsam
dass die einfache mail funktion länger als 30 sec dauern kann ?
Gruss Nikki
Aber warum passiert der Timeout überhaupt ?
Sondern wo ist der Unterschied zwischen einer
Schleife die ewig lange weiterzählen kann und
dem Mailversand in einer Schleife?
PHP unterscheidet zwischen tatsächlicher eigener Laufzeit und der Zeit, in der es auf externe System warten muß. Davon unabhängig kann selbstredend auch jedes dieser externen Systeme eine eigene Zeitbeschränkung haben.
Was passiert Serverintern, dass der Mailversand bei vielen Mails
ins Stocken gerät und langsamer wird, soooo laaaangsangsam
dass die einfache mail funktion länger als 30 sec dauern kann ?
Die Maschine ist dicht, irgendwann ist jede Resource mal erschöpft. Was genau nun das Problem ist (Limit an unbearbeiteten Mails, zuviele Festplattenzugriffe, zu wenig Prozessorzeit, zu wenig Netzwerkbandbreite) kann Dir nur derjenige sagen, der für den Server verantwortlich ist.
Gruß,
soenk.e
Hallo Nikkim
Was passiert Serverintern, dass der Mailversand bei vielen Mails
ins Stocken gerät und langsamer wird, soooo laaaangsangsam
dass die einfache mail funktion länger als 30 sec dauern kann ?
naja, wenn die Mails direkt vom Skript verschickt werden (also
nicht zuerst in einer Queue landen) kann es pro Mail schon ein
paar Sekunden dauern. Dein Skript muß ggfs. zuerst mal den Namen
des Mailservers ermitteln (bzw. das Modul, dass die Mails verschickt)
dann eine Verbindung zum Zielserver herstellen. Wenn das Ziel
dann mal geantwortet hat (was u.U. auch etwas dauern kann) folgt
halt ein Frage-Antwortspiel. Bis das durch ist, vergehen bei
langsamen Mailservern ein paar Sekunden. Wenn du jetzt ein Timeout
von 30 Sekunden hast, kriegst du vielleicht 30 oder evtl. auch
50 Mails durch. Viel mehr wird wohl nicht drin sein. Aber eine
verlässliche Angabe ist das natürlich nicht ;)
Tschau, Stefan