Timeout triggern ohne fork - Funktionslaufzeit begrenzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Timeout triggern ohne fork - Funktionslaufzeit begrenzen

    Hi,

    ich versuche die Laufzeit einer Funktion zu kontrollieren und bei ueberschreiten einer maximalen Laufzeit einen Abbruch der Funktion zu triggern. In Perl krieg ich das hin. In PHP hab ich das bis lang nur ueber ein fork Konstrukt geloest, was aber fuer die jetzige Anwendung auf Dauer zu viel Ressourcen fressen wuerde.

    Hat jemand Tipps? Es geht um CLI Skripte.

    Dankeschön!

  • #2
    Re: Timeout triggern ohne fork - Funktionslaufzeit begrenzen

    ?
    PHP-Code:
    <?php
    define
    ('START'time());

    while (
    true) {
      
    sleep(100);
      if (
    time() - START 5000) {
        die();
      }
    }

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      evtl. hilft dir:
      http://www.php.net/manual/de/control...es.declare.php
      und
      http://www.php.net/manual/de/functio...k-function.php
      Zuletzt geändert von combie; 31.07.2006, 11:49.
      Wir werden alle sterben

      Kommentar


      • #4
        Hmm, ticks kannte ich noch gar nicht. Interessant, kann ich sicherlich mal gebrauchen. Danke!

        Ich muss es heute abend mal ausprobieren, da ich mir nicht sicher bin, ob die Funktionen die ab und zu hängen bleiben immer noch periodisch versuchen was zu tun (also die Ausführung der tick_functions zuliessen). Ansonsten warten die ja trotzdem bis das Kommando ausgeführt ist.

        @ghostgambler: auch danke: mein problem wäre jedoch bei sleep(1000) evtl. schon nach 10 Sekunden abzubrechen, bzw. was zu machen.

        Kommentar


        • #5
          PHP hat eigendlich keine "hänger"!

          Abgesehen von Soket-Timeouts oder selbstgebastelten Endlosschleifen....
          Wir werden alle sterben

          Kommentar


          • #6
            Original geschrieben von combie
            PHP hat eigendlich keine "hänger"!

            Abgesehen von Soket-Timeouts oder selbstgebastelten Endlosschleifen....
            Erwischt
            Bei mir ist es ein Problem mit Sockets via Curl, welches nicht durch den Curl-eigenen Timeout Mechanismus gelöst wird.

            Naja, Frage war halt in gewisser Weise auch theoretischer Natur, da ich ansonsten auch alles für Perl umschreiben kann. Fühle mich halt nur etwas wohler mit PHP.

            Kommentar


            • #7
              Das ganze curl gedöns wird meist gar nicht alles gebraucht
              Einfache Sachen kann man "leicht" mit fsockopen nachbauen
              Wir werden alle sterben

              Kommentar


              • #8
                Original geschrieben von combie
                Das ganze curl gedöns wird meist gar nicht alles gebraucht
                Einfache Sachen kann man "leicht" mit fsockopen nachbauen
                Grundsätzlich gebe ich Dir Recht. Ich persönlich stosse allerdings öfters mal an die Grenzen von Curl und LWP und nicht jedes Protokoll und jede Authentifizierung lässt sich mit ein paar Zeilen nachbauen. Ergo: hier leider keine Option.

                Grundsätzlich finde ich Curl eine feine Sache, läuft bei mir intensiv und zuverlässig auf einem Produktiv-Server. Es gibt aber ein paar Sachen gegen die man Vorkehrungen treffen muss. Wollte es halt vermeiden, wegen jeder Curl-Instanz zu forken.

                Kommentar

                Lädt...
                X