Andre: Zyklenbedingte Berechnung

Ist es möglich, die Datenbank so zu programmieren, dass sich nach bestimmten Zeitzyklen immer wieder die gleiche Rechnung /Bearbeitung wieder holt?

So z.B.
„Rechne alle 5 Minuten die Zahlen aus Spalte a und Spalte b zusammen und schreib das Ergebnis in Spalte c“

Mit PHP könnte ich so was nur unbefriedigend simulieren indem ich die Anzahl der abgelaufenen Zeiträume zähle und dann das ganze hochrechne; das wäre aber nur eine Suboptimale Notlösung.

Im Moment verwende ich auf meinem Server Apache und MySQL.

Ich hoffe, dass mir jemand sagen kann ob/wie das geht bzw. wo ich u.U. ein Tutorial finden könnte.

Gruß und Danke im Voraus
Andre

  1. Hi,

    Ist es möglich, die Datenbank so zu programmieren, dass sich nach bestimmten Zeitzyklen immer wieder die gleiche Rechnung /Bearbeitung wieder holt?

    ja.

    Mit PHP könnte ich so was nur unbefriedigend simulieren indem ich die Anzahl der abgelaufenen Zeiträume zähle und dann das ganze hochrechne; das wäre aber nur eine Suboptimale Notlösung.

    Warum, "PHP" als Client des Datenservers geht doch erst einmal.

    Gruesse!
    Lulli

    1. Warum, "PHP" als Client des Datenservers geht doch erst einmal.

      Ja, aber wie krieg ich das damit hin?
      Wie gesagt ich möchte die Anzahl der abgelaufenen Zeiträume nicht zählen und sonst bräuchte ich ja eine Seite, die genau alle 5 Minuten ausgeführt wird.
      Das nämlich auf die Seite, die alle User benutzen draufzuschreiben wäre irrsinnig, weil dann die gleiche anfrage gleich 50 kommen würde. Und dass will ich dem Server nicht zumuten.

      1. Hi,

        Ja, aber wie krieg ich das damit hin?

        schau mal, Du moechtest, dass ein Datenclient in regelmaessig zeitlichen Abstaenden mit jeweils aktuellen Daten versorgt wird, richtig?

        ferner wuenscht Du eine HTTP-basierte Loesung, eine sog. Webloesung, zu diesem Zweck ziehst Du den Einsatz eines serverseitig laufenden PHP mit dortiger Datenbindung in Erwaegung, richtig?

        Falls beides o.g. richtig, dann haettest Du grundsaetzlich zwei Moeglichkeiten:
        1.) Du implementierst ein sog. Push-Abo, d.h. der Server sendet in regelmaessigen zeitlichen Abstaenden aktuelle Daten. Das kommt wegen "HTTP und so" nicht in Betracht.
        2.) Du bringst den Client auf ein Pull-Abo, d.h. dieser holt sich in regelmaessigen zeitlichen Abstaenden frische Daten. Das geht, das kannst Du ueber den META-Tag "Refresh" in Auftrag geben. Aber auch diese Loesung hat ihre Nachteile, denn sie ist ressourcenintensiv und moeglicherweise auch einer Loesung, in der der Webbrowserclient, also der Nutzer, selbst bedrafsweise eine Datenaktualisierung in Auftrag gibt unterlegen.

        Gruesse!
        Lulli

        1. mm,
          Danke erstmal

          1.Tja wie du schon schreibst: Nicht so tofte.
          2. fällt schonmal raus, weil das Ganze auch funktionieren soll, wenn der Client garnicht am Netz ist.

          Andre

  2. Hallo!

    Ist es möglich, die Datenbank so zu programmieren, dass sich nach bestimmten Zeitzyklen immer wieder die gleiche Rechnung /Bearbeitung wieder holt?

    MySQL kann das von Haus aus IMHO nicht. Hier würde sich vielleicht ein cron job anbieten.

    So z.B.
    „Rechne alle 5 Minuten die Zahlen aus Spalte a und Spalte b zusammen und schreib das Ergebnis in Spalte c“

    Mir erschließt sich der Sinn aus dem nicht ganz.
    Was genau möchtest du denn bewirken? Vielleicht finden wir ja eine andere Lösung für dein Problem.

    mfg
      frafu

    1. Mir erschließt sich der Sinn aus dem nicht ganz.
      Was genau möchtest du denn bewirken? Vielleicht finden wir ja eine andere Lösung für dein Problem.

      Erstmal danke für die schnellen Antworten :-)
      aber was das Umgehen des Problems betrift so möchte ich ein Browsergame programmieren und suche u.a. im Moment nach einer Möglichkeit, dass die Rohstoffe alle 5 Minuten auf das Konto gebucht werden.
      Zwar könnte man dies auch machen, indem man die vergangen Zeiträume zählt und dann hochrechnet; allerdings würde dann z.B. die in der Zwischenzeit ausgebaute Goldmine nicht berücksichtig.

      nur eine Frage: Was ist ein cron?

      Gruß
      Andre

      1. Hi!

        nur eine Frage: Was ist ein cron?

        http://de.wikipedia.org/wiki/Cronjob

        Es ist allerdings gar nicht so unwahrscheinlich, daß du selbst keinen Cronjob einrichten kannst, so daß du deinen Provider deswegen anschreiben müßtest.

        Gruß, rob

        1. Hab grad bei 1und1 nachgesehen; da steht zwar das man die Cronjobs nur so alle 3-5 Minuten ausführen soll, aber das reicht ja voll und ganz.

          Danke an alle, ihr hab mir sehr geholfen.

          Gruß
          Andre