Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatisches Script beenden

Einklappen

Neue Werbung 2019

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

  • Automatisches Script beenden

    Hallo erstmal,

    Ich habe euch hier über Google gefunden und da ich im moment keinen finde der mir helfen kann, wende ich mich mal an euch. Ich bin kein Profi in Sachen php, aber denke ich kann teilweise gut mit umgehen. Nun zu meinem Problem.
    Ich möchte ein php Script von mir maximal 10 Stunden am Tag laufen lassen, sprich es läuft solange bis die 10 Stunden voll sind und beendet sich dann von alleine. Problem an der ganzen Sache, wie bekomme ich es hin, das selbst wenn ich das Script manuell beende und dann neustarte, immernoch die Stunden von vorher mitgezählt werden. Sodass es wirklich maximal 10 Stunden läuft, egal ob es durchläuft oder ich es 10 x Neustarte.

  • #2
    ??? Was auch immer Du vorhast

    Benutze den aktuellen Timestamp.
    time ()
    date ()

    Startzeit mußt Du natürlich irgendwo merken (Session, DB, File...)

    Kommentar


    • #3
      Aber ist der timestamp nach manuellem neustart des scripts nicht weg? Mir gehts ja darum, Maximum 10 Stunden täglich zu haben, egal ob man neustartet oder nicht.

      Sonst müsste ich den timestamp ja immer in eine datei schreiben und wieder abfragen bei neustart, oder? Und es geht ja darum, wielange das Script läuft, wenn ich jetzt um 10 uhr starte ( timestamp wird angelegt ), um 15 uhr beende ich das script, dann sollte es eigentlich noch 5 stunden laufen können. Wenn ich es aber erst um 20 uhr wieder starte, ist von timestamp zu timestamp doch schon die zeit abgelaufen?

      *kompliziert*

      Kommentar


      • #4
        Startzeit mußt Du natürlich irgendwo merken

        Kommentar


        • #5
          wurde doch alles gesagt was du brauchst siehe


          Benutze den aktuellen Timestamp.
          time ()
          date ()

          Startzeit mußt Du natürlich irgendwo merken (Session, DB, File...)

          Kommentar


          • #6
            Nee, so einfach ist das auch nicht.

            Wenn das 10 Stunden laufen soll, man es um 8 Uhr startet, es um 10 Uhr abgebrochen wird, und dann um 11 Uhr neu gestartet wird, dann muss das Script wissen, dass schon 2 Stunden verbraten sind und es nur noch 8 weitere Stunden laufen soll.
            Man kommt also nicht umhin, einen Zeitstempel 'Anfang' zu schreiben, und dann in genügend kleinen Zeiteinheiten permanent einen Zeitstempel 'Ende' zu schreiben, damit man wieder aufsetzen kann.

            Interessant wäre es zu erfahren, warum ein Script eine Soll-Laufzeit haben muss.

            Kommentar


            • #7
              Also sorry, ich verstehe das anders. Feste Startzeit - feste Endzeit. Nüscht mit Auftrennen usw.

              Kommentar


              • #8
                Du brauchst doch immer nur die $endZeit mit der $istZeit vergleichen. Hast du die $endZeit noch nicht erreicht, weiterlaufen. Ist die $endZeit >= $istZeit script beenden.
                Wo siehst du da das Problem?

                Kommentar


                • #9
                  Da du immerhin ein 10 Stunden Script laufen lassen kannst, gehe ich mal davon aus, dass du entweder einen eigenen Server oder Zugriff auf die php.ini hast.

                  Warum nicht einfach max_execution_time auf 10 Stunden setzen? Dann kann es in keinem Fall länger als 10 Minuten laufen und das Vergleichen und auf 0 setzen wird automatisch erledigt

                  //Edit: Oh, ich habe jetzt erst gelesen, dass die Zeit weiterlaufen soll .. vergesst meinen Ansatz. Man verzeihe mir, ich bin gerade erst aufgestanden.

                  Kommentar


                  • #10
                    Ein Php-Script wird von Server (Browser) nach einer bestimten Zeit (siehe php.ini) automatich beendet. daher kann man den sowieso nicht 10 stunden laufen lassen, es sei denn du lasst es über konsole starten.

                    du musst timestamp mit 10 stunden erstellen (ein Countdown), und die Zahl wird dann immer weniger solange das script läuft.
                    wenn dein Countdown auf NULL steht wird er dann nicht mehr gestartet.

                    Kommentar


                    • #11
                      Das Script muss ja praktisch pausenlos testen, ob die Zeit schon abgelaufen ist. Wird es beendet, so muss die abgelaufene Zeit irgendwie gspeichert werden. Bei einem Neustart muss dann diese schon gelaufene Zeit wieder aufgenommen werden. Natürlich erst nach einem Test, ob diese Zeit vom aktuellen Tag stammt.
                      Das Problem ist wahrscheinlich, das Beenden des Programms abzufangen, das dürfte nur mit JS möglich sein.

                      Kommentar


                      • #12
                        Was möchtest du überhaupt realisieren mit einem Skript dass 10h läuft? Dafür wäre doch sicherlich eine andere Programmiersprache deutlich besser geeignet als PHP.

                        Kommentar


                        • #13
                          Das Script muss ja praktisch pausenlos testen, ob die Zeit schon abgelaufen ist.
                          Jetzt hats bei mir auch Klick gemacht.

                          Kommentar


                          • #14
                            ahhhm das script wird über commandline gestartet, und ja es läuft auf nem Server, sprich ich hab zugriff auf die php.ini, aber das bringt mir nichts mit der max execution time...


                            Zum Thema was das script soll; es checkt ( per curl ) dauernd eine ip. Das soll allerdings max. 10 Stunden am Tag passieren, da es aber aufm Server läuft und ich nicht 24/7 zuhause bin, soll es sich halt automatisch nach 10 Stunden schließen, da ich aber wenn ich zuhause bin, oftmals auf den Server schaue und das Script neustarte, wäre es ungut wenn die 10 stunden neuanfangen beim neustarten.

                            Zum Thema andere Progsprache, kann ich nicht . Aber danke schonmal für die zahlreichen antworten.

                            Kommentar


                            • #15
                              Für sowas gibts CRON.

                              Kommentar

                              Lädt...
                              X