Script wird während der Runtime an den Anfang des Scripts zurückgesetzt

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

  • Script wird während der Runtime an den Anfang des Scripts zurückgesetzt

    Hi,

    ich habe folgendes Problem. Ich habe ein Script welches am Anfang des Scripts in eine DB den Prozess loggt dass diese Datei ausgeführt wird, da die Datei immer nur einmal ausgeführt werden darf.

    Am Ende des Scripts wird dann in der DB dieser Prozess als geschlossen markiert.

    Nun funktionierte dies bisher auch wunderbar, allerdings habe ich ein neues Phänomen, und zwar dass zur Laufzeit des Scripts mir ausgegeben wird dass bereits ein aktiver Task vorliegt, und das kann nur am Anfang des Scripts passieren, da dort das echo dafür ist.

    Ich zeige mal schematisch den Aufbau des Scripts, da ich nicht weiss ob es eine Limitierung von 'include' gibt. Da ich mir nicht sicher war ob das Ganze an der Scriptgrösse während der Laufzeit liegt habe ich in der php.ini diesen Wert hochgesetzt. Aber auch ein Hochsetzen des Scriptmemorys auf 80 MB hat keine Änderung gebracht. Das ganze läuft auf einem Wamp-System

    Script1.php
    Prozess des Script1.php wird in TB prozesse als aktiv angelegt
    echo "Es gibt noch einen aktiven Prozess mit der ID XY";


    include ("Script2.php");
    Script2.php
    include ("Script3.php");





    Prozess des Script1.php wird in TB prozesse als geschlossen upgedatet



    Gibt es eine Erklärung wann ein Script wieder vom Anfang an ausgeführt wird?

    Grüße
    cu DS
    Zuletzt geändert von Der-Sucher; 29.09.2003, 20:50.

  • #2
    würd mal sagen das ist einmal nicht ganz durchgelaufen.

    Kommentar


    • #3
      hmm aber wie kann so etwas passieren? Bzw. selbst wenn es nicht ganz durchläuft warum fängt das Script dann auf einmal wieder von vorne an?

      Normalerweise werden die PHP-Scripte doch von oben nach unten abgearbeitet,oder?

      Kommentar


      • #4
        wenn dein hoster unix/linux laufen hat, mach's so (bei dir lokal isses ja wurscht, da kann ruhig windows drauf sein)
        PHP-Code:
        //für windows-rechner - anfang
        if (!function_exists('sem_get'))
        {
          function 
        sem_get()
          {
          }

          function 
        sem_acquire()
          {
          }

          function 
        sem_release()
          {
          }
        }
        //für windows-rechner - ende

        $handle=sem_get(4711,1);
        sem_acquire($handle);
        echo 
        'Hier kommt der Code hin, der nur einmal ausgeführt werden darf.';
        sem_release($handle); 
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          nur als Ergänzung für alle die eventuell ein ähnliches Problem haben. Ich habe den Fehler glaube ich lokalisiert. Ich benutze den flush() Befehl in meinem Script um vorzeitige Echos ausgegeben zu bekommen, da das Script sehr lange läuft.

          Und habe dabei übersehen dass 1.) es flush() mit auskommentierten echos gab, und 2.) echos ohne flush() dazwischen. Anscheindend ist es dadurch zu dem Phänomen gekommen.

          Grüße
          cu DS

          Kommentar

          Lädt...
          X