String
Erfahrenes Mitglied
Hallo zusammen,
Ich stehe vor dem Problem, dem User Zeitversetzte Aktionen ermöglichen zu müssen.
Also ein Beispiel was ich genauer meine:
Der User erstellt einen Beitrag / Schreibt einen anderen User etwas. Um zu verhindern, dass ein "unfertiger Beitrag" gepostet wird, oder der User es sich anders überlegt, soll der Beitrag automatisch nach x Minuten sichtbar sein oder beim anderen User ankommen.
(Sinn der Sache ist einfach, dass ich Zeit haben will, dein Beitrag kurz zu überarbeiten, bearbeiten bzw. eine eigene PHP Funktion drüber laufen zu lassen - nehme ich keinen Einfluss, sollte dieser einfach angezeigt werden)
Oder ein weiteres Beispiel aus vielen Browsergames: Gebäude Update dauert noch 3 Minuten. Nach den 3 Minuten ist das Häuschen dann fertig. - Kampftrupp kommt in 5 Minuten beim Gegner an usw. usw.
Rein auf PHP bezogen sehe ich da kein Problem. Ich könnte für jedes Post ein SQL Eintrag (Timestamp) machen, sobald dieser Timestamp überschritten ist, das Posting sichtbar schalten.
Oder auf das Gebäude bezogen, ist der Timestamp fällig, wird das Gebäude aufgebaut.
Anders, wo ich mir noch keinen Reim drauf machen kann: Wie Funktioniert bei Browsergames das "Gegner in 3 Minuten da, Kampf, und wieder zurück" voll automatisch..?
Nachteil dieser Methode: Bei jedem Seitenaufruf muss die "gesamte" DB bzw. die Tabellen kontrolliert werden, ob irgendwo evt. ein Timestamp fällig ist. Weiterer Nachteil: Ist der User nicht online / aktiv, passiert gar nichts und das Posting ist erstmal nicht verfügbar, das Gebäude wird nicht geupdatet, die "Gegner" kommen nicht an..
Grösster Nachteil: Sollen die anderen User auf eine Zeitversetze Aktion reagieren können (auf den Beitrag antworten, Gegner abwehren) muss die "Aktion" erst aktiv geschaltet werden / abgearbeitet werden.
Oder ich mache ein Cronjob, der jede Minute abgearbeitet wird. Das ganze ist aber ziemlich Serverlastig - Und man kann nur Minutengenau arbeiten.
Mir fehlt da so ein bisschen die Zündende Idee, welche mir das "fertig in.." ein wenig erleichtert..
Habt ihr solch ein System schonmal gemacht? Wie lösen das die Browsergames? Die nutzen die Funktion wahrscheinlich tausendfach an hundert verschiedenen stellen..
Bin für jeden Tipp dankbar
paD
Ich stehe vor dem Problem, dem User Zeitversetzte Aktionen ermöglichen zu müssen.
Also ein Beispiel was ich genauer meine:
Der User erstellt einen Beitrag / Schreibt einen anderen User etwas. Um zu verhindern, dass ein "unfertiger Beitrag" gepostet wird, oder der User es sich anders überlegt, soll der Beitrag automatisch nach x Minuten sichtbar sein oder beim anderen User ankommen.
(Sinn der Sache ist einfach, dass ich Zeit haben will, dein Beitrag kurz zu überarbeiten, bearbeiten bzw. eine eigene PHP Funktion drüber laufen zu lassen - nehme ich keinen Einfluss, sollte dieser einfach angezeigt werden)
Oder ein weiteres Beispiel aus vielen Browsergames: Gebäude Update dauert noch 3 Minuten. Nach den 3 Minuten ist das Häuschen dann fertig. - Kampftrupp kommt in 5 Minuten beim Gegner an usw. usw.
Rein auf PHP bezogen sehe ich da kein Problem. Ich könnte für jedes Post ein SQL Eintrag (Timestamp) machen, sobald dieser Timestamp überschritten ist, das Posting sichtbar schalten.
Oder auf das Gebäude bezogen, ist der Timestamp fällig, wird das Gebäude aufgebaut.
Anders, wo ich mir noch keinen Reim drauf machen kann: Wie Funktioniert bei Browsergames das "Gegner in 3 Minuten da, Kampf, und wieder zurück" voll automatisch..?
Nachteil dieser Methode: Bei jedem Seitenaufruf muss die "gesamte" DB bzw. die Tabellen kontrolliert werden, ob irgendwo evt. ein Timestamp fällig ist. Weiterer Nachteil: Ist der User nicht online / aktiv, passiert gar nichts und das Posting ist erstmal nicht verfügbar, das Gebäude wird nicht geupdatet, die "Gegner" kommen nicht an..
Grösster Nachteil: Sollen die anderen User auf eine Zeitversetze Aktion reagieren können (auf den Beitrag antworten, Gegner abwehren) muss die "Aktion" erst aktiv geschaltet werden / abgearbeitet werden.
Oder ich mache ein Cronjob, der jede Minute abgearbeitet wird. Das ganze ist aber ziemlich Serverlastig - Und man kann nur Minutengenau arbeiten.
Mir fehlt da so ein bisschen die Zündende Idee, welche mir das "fertig in.." ein wenig erleichtert..
Habt ihr solch ein System schonmal gemacht? Wie lösen das die Browsergames? Die nutzen die Funktion wahrscheinlich tausendfach an hundert verschiedenen stellen..
Bin für jeden Tipp dankbar
paD