Ankündigung

Einklappen
Keine Ankündigung bisher.

verzögerter Ausführung

Einklappen

Neue Werbung 2019

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

  • verzögerter Ausführung

    Hi

    Zurzeit ist es so, dass wenn ein Formular abgeschickt wird, dass dann sofort einige Daten in eine mysql-Datenbank geschrieben werden.

    Nun möchte ich es aber so, dass sobald man das Formular versendet, die Daten erst nach einer Stunde in die Datenbank geschrieben werden.
    Es kann aber sein, dass nach dieser einer Stunde der User gar nicht mehr online ist. Auch in diesem Fall sollte der Datenbankeintrag erst eine Stunde später erfolgen.

    Ist das realisierbar mit php oder JavaScript?
    Muss ich dafür cronjobs verwenden?

  • #2
    dazu musst du die Daten zwischen speicher, z.B. in einer Datei und dann via Cronjobs ein Script aufrufen, welches dann die Daten aus der Datei in die DB schreibt.
    auch ein Forum (PHP)

    Kommentar


    • #3
      Spontan fallen mir da nur Cronjobs ein. (Wo es nur mögliche wäre jede Stunde etwas in die MySQL-Datenbank zu schreibe)
      Du könntest aber auch ein Script per exec() aufrufen und es dann nur lokal auf deinem Rechner ausführen lassen.
      In dass Script setzt du einfach ein sleep().

      Das ist aber ziemlich Ressourcen-fressend

      Fazit: Schreib lieber in die Datenbank rein mit Timestamp, und dann kannst du anhand des Timestamps sehen, ob eine Stunde vergangen ist.
      (ggf. per Cronjob den Eintrag "freischalten" lassen)

      Kommentar


      • #4
        [OT]

        Nur reine Neugier, warum sollen die Daten eine Stunde später eingetragen werden ?

        Kommentar


        • #5
          Zitat von CIX88
          [OT]

          Nur reine Neugier, warum sollen die Daten eine Stunde später eingetragen werden ?
          Bestimmt nicht für ein Browsergame... :wink:

          Kommentar


          • #6
            Zitat von Matthias959
            Zitat von CIX88
            [OT]

            Nur reine Neugier, warum sollen die Daten eine Stunde später eingetragen werden ?
            Bestimmt nicht für ein Browsergame... :wink:
            um eine Browsergame handelt es sich nicht, so weit bin ich noch nicht mit meien Programmierkünsten...

            Es ist für eine Account-Löschung.
            Ich habe es jetzt bereits oft erlebt, dass die User ihren Account gelöscht haben und erst danach realisiert haben, dass nun auch alles gelöscht ist.

            Ich hätte mit dem Script eine kleine Gnadenfrist einbauen wollen. Falls es jemand nach erhalt meines Abschiedmails bereut seinen Account gelöscht zu haben, könnte er dies wieder rückgängig machen.

            Kommentar


            • #7
              Mach doch einfach in die Datenbank ein Feld "geloescht".
              Wenn jemand seinen Account löscht, dann wird das Feld auf 1 gesetzt.
              Dann lässt du einfach jeden Abend ein Script per Cronjob ausführen, das alle Datensätze wo "geloescht" auf 1 gesetzt ist löscht.

              Kommentar


              • #8
                erstell halt vorher ein Backup mit einem neuen Zeitstempel,

                wenn der erreicht ist, dann löschst du das Backup, oder leg bei der Tabelle noch mal eine Spalte an, in der du den Zeitstempel rein schreibst

                [edit]
                oder wie wie posting davor, mit einem Zeitstempel, ist es halt genauer
                [/edit]
                auch ein Forum (PHP)

                Kommentar


                • #9
                  Jo, schiftis Idee mit dem Zeitstempel ist besser.
                  In das Feld gelöscht, doch lieber den timestamp eintragen und dann halt per Cronejob alle Einträge löschen wo der Timestamp älter als 24 Stunden ist.

                  Kommentar

                  Lädt...
                  X