Timeout nach 300 Sekunden

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

  • Timeout nach 300 Sekunden

    N'Abend,

    habe ein Problem mit dem Timeout nach 300 Sekunden. Gibt es Möglichkeiten, diesen Timeout mit Hilfe von PHP zu umgehen?
    Habe bereits etwas gegoogelt und mein Script wie folgt angepasst:
    PHP-Code:
    ini_set("memory_limit","1000M");
    ini_set("max_execution_time","9999");
    ini_set("max_input_time","9999");
    set_time_limit("9999"); 
    Hat im Hinblick auf den Timeout jedoch leider nichts gebracht. Gibt es weitere Möglichkeiten diesen Timeout zu verhindern?
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    Woher weißt du, dass das ein PHP Timeout ist?
    Wir werden alle sterben

    Kommentar


    • #3
      Wozu benötigst du eine Skriptausführung von 5 Minuten?

      Kommentar


      • #4
        @combie: Gute Frage, das weiss ich nicht. Das Script läuft ca. 300 Sekunden und hört dann auf, angezeigt wird mir eine weiße Seite, ohne Erfolgs- und ohne Fehlermeldung.

        @PHP-Desaster: Weil ich sehr viele Datensätze miteinander vergleiche und die Ergebnisse in eine Datenbank speichere. Das Abgleichen und die Inserts in die Datenbank sind sehr zeitaufwändig.
        Das Genie überblickt das Chaos!

        Wer Rechtschreibfehler findet, darf sie behalten!

        Kommentar


        • #5
          hm ... und das machst du wieviel mal am Tag? Ist es nicht besser auf commandline ebene laufenzulassen?

          Kommentar


          • #6
            Aja, das wahr die Ähnlichkeits-Geschichte.
            Teile den Vergleich auf, so dass nicht alle Datensätze aufmal verglichen werden.

            Kommentar


            • #7
              @asp2php: Das Script muss nur bei Bedarf also bei Hinzukommen neuer Modelle laufen. Also vielleicht 2 mal pro Woche, evtl. aber auch täglich. Das mit der Commandline habe ich mir auch schon überlegt, Problem war nur, dass ich nicht rausbekommen habe, wie das funktioniert.

              @PHP-Desaster: Genau, die Ähnlichkeits-Geschichte. Das Aufteilen war auch schon mein Gedanke, Problem ist dabei, dass ich noch am überlegen bin, wie ich das am Besten mache. Kann ich auslesen, wann der Timeout eintrifft? Denn irgendwie muss ich ja einschätzen können, wann ich das Script stoppen muss und wo ich dann weiter machen muss.
              Das Genie überblickt das Chaos!

              Wer Rechtschreibfehler findet, darf sie behalten!

              Kommentar


              • #8
                Normal müsste man mit einer simplen Ausgabe das Timeout schon überbrücken können, oder? (bin mir nich ganz so sicher)

                Dann kannste ja in deine schleife normal ne if-verzweigung machen..

                like:

                PHP-Code:
                 if($anzahl_der_bisher_vergleichten_datensätze 500 == 0) echo "blubb"
                ..oder so

                mfg

                Kommentar


                • #9
                  @Blackgreetz: Das dachte ich ehrlich gesagt auch. Ich habe das auch schon mit einem echo versucht, allerdings brachte es leider nichts. Ich erhielt trotzdem nach 300 Sekunden eine weiße Seite.
                  Das Genie überblickt das Chaos!

                  Wer Rechtschreibfehler findet, darf sie behalten!

                  Kommentar


                  • #10
                    Mal ein ganz anderer Ansatz: Ist es besser den SQL-Insert direkt nach dem Vergleich durchzuführen oder die Punkte und die ID's der beiden Produkte zuerst in einem Array ablegen und das dann hinterher in die Datenbank einlesen?
                    Das Genie überblickt das Chaos!

                    Wer Rechtschreibfehler findet, darf sie behalten!

                    Kommentar


                    • #11
                      Hmm, lass mal nachdenken. Ist es besser 100 Queries an die DB zu senden oder nur einen einzigen?

                      PS: Maximale länge für Queries beachten.

                      Kommentar


                      • #12
                        @Tobiaz: Wie bekomme ich einen Query bei der Anzahl an Datensätzen hin?

                        Selbst wenn ich erstmal nur die Daten vergleiche ohne einen Query durchzuführen überschreitet das Script den Timeout. Wie bekomm ich denn jetzt raus, woran es genau scheitert, also wo genau der Timeout stattfindet?

                        Ich habe schon probiert den Timeout mit einem echo nach jeden 100.000 Datensätzen zu unterbinden, war aber leider erfolglos.
                        Das Genie überblickt das Chaos!

                        Wer Rechtschreibfehler findet, darf sie behalten!

                        Kommentar


                        • #13
                          @Tobiaz: Wie bekomme ich einen Query bei der Anzahl an Datensätzen hin?
                          Da es sich nur um ein INSERT geht, solltest du einfach mal das SQL-Manual aufschlagen und dir die verschiedenen (!) Syntax für INSERT ansehen.

                          Wie bekomm ich denn jetzt raus, woran es genau scheitert, also wo genau der Timeout stattfindet?
                          Sicher kennst du flush() noch nicht.

                          Ich habe schon probiert den Timeout mit einem echo nach jeden 100.000 Datensätzen zu unterbinden, war aber leider erfolglos.
                          Wenn der Timeout wirklich vom Server kommt, hilft das alles imho nichts. Damit kannst du nur dem Browser mitteilen, dass er noch was zu erwarten hat.

                          Kommentar

                          Lädt...
                          X