[PHP]timeout

  • Hallo

    Ich weiss nur das es sowas gibt, aber wie ist der befehl und wie wird er angewendet?
    Kennt jemand den timeoutbefehl für php?

    mfg coda

  • timeout??? Du meinst die maximale ausführungszeit von PHP-Skripten auf einem Webserver? Das würde man im Webserver konfigurieren. Ich beschreibe es hier mal beispielhaft für den Apache-Webserver, da dieser am meisten verwendet wird.

    Du kannst solche Variablen entweder in der php.ini, den conf-Dateien vom Apache oder auch über .htaccess, falls Du keinen Zugriff auf die Konfiguration des Servers selbst hast.

    php.ini

    Code
    max_execution_time = 30

    [konfigurationsdatei].conf

    Code
    php_value max_execution_time 30

    .htaccess

    Code
    php_value max_execution_time 30
  • ja danke, aber das meinte ich nicht...

    es gibt sowas auch für javascript, das bräuchte ich einfach für php...

  • *hihi* Du schreibst schon wieder sowas! Was ist denn sowas?
    BTW: Man kann JavaScript in keiner Weise mit PHP vergleichen. PHP wird auf dem Server ausgeführt und erstellt dynamisch HTML und auch JavaScript Code. JavaScript wird direkt im Browser ausgeführt.

  • Zitat von Beatz

    *hihi* Du schreibst schon wieder sowas! Was ist denn sowas?
    BTW: Man kann JavaScript in keiner Weise mit PHP vergleichen. PHP wird auf dem Server ausgeführt und erstellt dynamisch HTML und auch JavaScript Code. JavaScript wird direkt im Browser ausgeführt.


    tut mir leid für meine ungenauen beschreibungen...

    Das man die beiden nicht vergleichen kann ist mir klar.
    Ich habe halt mal irgendwo timeout überlesen, dieses war für php.

    Da konnte durch einen Befehl das timeout umgeändert werden, und dieses galt nur für das auszuführende Script.

    Hoffe das ich mich jetzt klar ausgedrückt habe...

    mfg coda

  • moin,
    also so recht weiss ich auch net was du meinst *hust*
    Die Funktion sleep meinst du sicher nicht, mit der kann man Ausführung des scripts um x Sekunden unterbrechen
    Ansonsten gibt es laut php.net:
    stream_set_timeout
    socket_set_timeout
    Die beiden Funktionen betreffen Dateioperationen

  • Moin!

    Wenn es für PHP eine dem Javascript "Timeout" vergleichbare Funktion geben würde, hätte das zur Folge, daß die Besucher deiner HP Fehlermeldungen bekommen, bzw. daß Seiten nicht komplett oder mit z.T. erheblicher Verzögerung geladen werden.

    Vielleicht solltest du einfach mal beschreiben, was du vor hast und wir schauen dann, ob es irgendwie lösbar ist ?

    G.a.d.M.

    Ronald

  • Ich will zb. ein newssystem schreiben.

    wenn man dann zb. 800 user hat, könnte es bei langsamen servern passieren, das er das script vorzeitig abbricht, weil es zu lange braucht.

    es soll einfach das vorzeitige abbrechen eines scriptes verhindern....

    mfg coda

  • moin,
    also du meinst nen script was dir news ausgibt?
    wenn du das meinst und die daten dafür in einer mysql db liegen kannst du doch die ausgabe in der abfrage mittels limit und offset regulieren

    wenn es dir um das Eintragen der News geht sehe ich da generell kein Problem,da das ja nur eine kleine abfrage mit INSERT wäre
    Der einzige Fall indem ich bisher die Laufzeit von Scripten erweitern musste war beim Dateiupload über HTTP, da dort der standard wert nun nichtmehr unbedingt ausreicht ;)
    Aber deinen Bezug zwischen Newssystem und der Anzahl der user sehe ich nicht ganz:
    Bei der Ausgabe kannst du wie oben genannt direkt im query begrenzen, beim Eintragen spielt doch die Laufzeit des Scriptes dafür garkeine Rolle ?
    Ein script zum eintragen von news wird wohl kaum länger als die beim apache als stanard gesetzen 30 Sekunden dauern.
    Aber ich glaube ich hab da immernoch net ganz verstanbden, worum es dir geht *hust*
    mfg Froasty

  • Ich meinte eher ein newsletters system...

    ach, irgendwie drück ich mich ganz falsch aus.
    Dateiupload per HTTP ist ein gutes beispiel.

    Kann man dafür über php ein anderes timeout setzten?

    mfg coda

    PS: Danke für mühe, auch wenn ich mich so Sch*** ausdrücke

  • moin,
    hmm also erstmal generell was:
    wenn du das Gleiche schon in javascript realisiert hast wäre es vielleicht sinnvoll das mal kurz darzustellen, ich kann kein javascript, aber sicher einige andere hier im Forum, wodurch man schonmal weiss in welche Richtung das Problem geht ;)

    so nu back to topic (was es auch immer ist *hust*):

    Dateiupload per HTTP war nur ein Beispiel, dafür gibt es auch Funktionen in PHP die die timeout period im stream beeinflussen
    d.h. aber, dass dadurch NICHT die Ausführungszeit des Scriptes beeinflusst wird; ausserdem bezweifle ich doch stark, dass man mit diesen Funktionen die in den config Dateien festgelegten Maximalwerte überschreiten kann.Ich hatte dafür halt den Wert in der php.ini und der httpd.conf(apache) angepasst.

    Also wenn ich dich nun richtig verstanden habe geht es darum, dass du newsletter versenden willst per PHP script, und du dir Sorgen machst, dass bei sehr vielen usern = sehr vielen emails die max execution time gesprengt wird.
    Gut, nun kennt man zumindest dein Problem ^^
    Mach ich mir jetzt aber keinen Kopf drum, da es schon reichlich späht ist und ich auch nichtmehr grad nüchtern bin.
    Werd ich morgen mal überlegen und falls mir was zu einfällt das hier mitteilen, sofern mir dann nicht jemand anders zuvor gekommen ist :F
    mfg Froasty

  • moin, hatte bisher keine Zeit dazu
    hmm, also für dein angesprochenes Problem kannst du doch folgendes machen:
    setzte bei der Abfrage ein limit und offset...
    damit erhälst du anzahl_emails/abfrage
    die abfrage lässt über submit laufen, action auf gleiche seite
    so würdest dann also z.B. von 400 emails jeweils 100 Abfragen, was bedeutet, dass du damit 4x submit drücken müsstest
    dadurch würde man das Problem mit der max_execution time umgehen
    hoffe is klar, was ich meine
    mfg Froasty

  • wiso man legt einfach ein mcrotime und nach jeder verschickten mail vergleich man ob das timestamp noch unter max_execution_time -1 ist ansonsten wird ein JS script mit content reload ausgegeben.