Tach Community,
ich sende mit Hilfe von Sockets grosse
Datenmengen an einen Server auf dessen Konfiguration ich keinen
Zugriff habe.
Mein Script macht einen Socket auf und sendet
mehrere POSTrequests ab. Mein Problem ist, dass wenn die
Datenmenge entsprechend gross ist und der Vorgang zu lange
dauert bricht mein Script ab.
Ich bin mir nicht sicher… aber mir stellen sich
glaub ich 2 Timeout Probleme in den Weg. Zum einen
das von meinem lokalen Server (scriptausführung)
und das auf dem ich einen socket aufmache und wo die POSTs hinlaufen.
Wie umgeht man soetwas komfortabel. Mir fehlt da der Lösungsansatz.
Ein Beispiel ist zum Beispiel ein Newsletter script, welches
an 10000000ende Mailadressen Mails verschicken kann ohne abzubrechen.
Wie kann man soetwas realisieren?
Danke für den DenkAnstoss 
Gruss aus Berlin
PixelKoenig
Hallo,
http://de3.php.net/manual/de/function.fsockopen.php
resource fsockopen (
string $hostname
[, int $port = -1
[, int &$errno
[, string &$errstr
[, float $timeout = ini\_get("default\_socket\_timeout")]]]]
)
timeout
Der Connection-Timeout in Sekunden.
Hinweis: Wenn Sie einen Timeout für das Lesen oder Schreiben
von Daten über den Socket setzen wollen, verwenden Sie
stream\_set\_timeout(), da der timeout-Parameter von fsockopen()
nur für das reine Konnektieren des Sockets gedacht ist.
Gruß
Missverstaendnis?
Hi ,
mein Problem ist ja nicht, dass ich keinen timeout --setzen–
kann, sondern dass der server von sich aus sagt, dass die
ausführung des scripts zu lange dauert. (je nach konfig 30-60 sekunden) und dann einen timeout fehler wirft und mein script beendet.
ich glaube nicht, dass ich meinen server zwingen kann die maximale scriptausfuehrungszeit aus der .ini durch meinen gesetzten timeout
zu ersetzen… oder?
oder liege ich jetzt voellig falsch?
gruss
PixelKoenig
timeout
Der Connection-Timeout in Sekunden.
Hinweis: Wenn Sie einen Timeout für das Lesen oder
Schreiben
von Daten über den Socket setzen wollen, verwenden Sie
stream_set_timeout(), da der timeout-Parameter von
fsockopen()
nur für das reine Konnektieren des Sockets gedacht
ist.
Gruß
ich glaube nicht, dass ich meinen server zwingen kann die
maximale scriptausfuehrungszeit aus der .ini durch meinen
gesetzten timeout
zu ersetzen… oder?
wenn er sich zwingen lassen mag, geht das sehr gut mit:
http://php.net/set_time_limit
was aber wie du schon richtig bemerkt hast natuerlich noch nicht heisst, dass die gegenstelle keinen read_timeout wirft. dann musst du paketieren oder schneller senden.