PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   automatisierte Datenaktualisierung (http://www.selfphp.de/forum/showthread.php?t=24763)

Tsengo 26.10.2012 13:06:48

automatisierte Datenaktualisierung
 
Guten Tag,

ich hoffe ich bin erstens an dieser Stelle hier richtig und zweitens, dass mir jemand auch helfen kann.
Ich suche eigentlich nur einen Denkanstoss. Ich kann leider auch keinen Link zu meiner Seite schicken, da alles was ich heir schreibe bisher nur in der Theorie vorhanden ist und ich erst an die Umsetzung gehe, wenn ich einen Lösungsansatz habe.

Grundlegende Informationen zuerst:

Ich habe WebspacePaket mit einer mysql-Datenbank auf einem Linux-System.
Diese enthält unter anderem Daten von angemeldeteten Benutzern von meiner Seite.
Um manche Funktionen auf dieser Seite nutzen zu können müssen die Benutzer Punkte vorweisen können. Diese Punkte laden sich mit der Zeit auf, egal ob der Benutzer Online ist oder nicht.

Dies wäre theoretisch einfach mit einem Cronjob machbar, aber der Knackpunkt komtm jetzt:

Für die Benutzer gibt es unterschiedliche Ränge und je nach Rang laden sich die Punkte entsprechend schneller/langsamer auf.
Ich würde nun ungern für jeden Rang einen eigenen Cronjob anlegen, zumal die Unterschiede teilweise nur wenige Sekunden betragen.

Kann mir nun vielleicht jemand einen Ansatz liefern, mit dem ich das Problem lösen kann?

Sollte ich mich unklar ausgedrückt, oder für die Lösung wichtige Details vergessen haben, so meldet mir das bitte, damit ich diese noch hinzufügen kann.


Danke schonmal für eure Unterstützung.

CPCoder 29.10.2012 17:43:31

AW: automatisierte Datenaktualisierung
 
Zitat:

Zitat von Tsengo (Beitrag 143876)
Guten Tag,

... Für die Benutzer gibt es unterschiedliche Ränge und je nach Rang laden sich die Punkte entsprechend schneller/langsamer auf.
Ich würde nun ungern für jeden Rang einen eigenen Cronjob anlegen, zumal die Unterschiede teilweise nur wenige Sekunden betragen.

Kann mir nun vielleicht jemand einen Ansatz liefern, mit dem ich das Problem lösen kann?
...

Dann mach es wie die großen ;o)

1. Erstell eine PHP-Datei, welche die "Update Arbeiten" der jeweiligen Benutzerränge durchführt.
2. Erstell einen Cronjob, der die zuvor erstellte PHP-Datei jede Minute ausführt.

Die zuvor PHP-Datei sollte nun folgende Aufgaben durchführen.

- Prüfen wann für welchen Rang der letzte Durchlauf war (z.B. über Timestamps in einer Tabelle)
- jeweilige Update-Arbeit der Ränge durchführen, wenn der aktuelle Timestamp abzüglich Timestamp in der Tabelle kleiner ist, als ein vorgegebener Wert.

Tsengo 29.10.2012 18:25:37

AW: automatisierte Datenaktualisierung
 
Okay danke dir, so werde ich es auf jeden Fall versuchen.

Was mir dabei aber dann auch aufgefallen ist:
Ich muss ja dann aufpassen, dass keiner der Intervalle kleiner als 60 Sekunden wird, oder? Sonst hätte dieser Rang mehr oder weniger "Verlust" da er nicht das volle Potential ausschöpfen kann. Liege ich damit richtig?

Da ich davon ausgehe, mit dieser Annahme korrekt zu sein, würde ich meine Frage gerne erweitern, ob es denn möglich ist unter 60 Sekunden solche Aktualisierungen vorzunehmen, oder ob ich dafür einen komplett eigenen Server bräuchte und dann ein entsprechendes Programm schreiben müsste (z.b. in C# oder anderen Programmiersprachen)?

Danke nochmals :)

DokuLeseHemmung 29.10.2012 18:47:16

AW: automatisierte Datenaktualisierung
 
Frage doch auch mal ob das nicht grundsätzlich der falsche Ansatz ist......

z.B.:
Wozu die cronjobs, wenn doch mal eine Stunde lang kein User auf den Server zugreift?

Tsengo 29.10.2012 19:08:37

AW: automatisierte Datenaktualisierung
 
Die Frage ist berechtigt.

Nun ich möchte, dass sich diese Punkte der einzelnen Ränge aufladen, egal ob der Nutzer auf der Seite ist oder nicht.

Ich habe nunmla gedacht, dass es mit einem Automatismus funktionieren müsste der eben im entsprechenden Intervall aufgerufen wird, das würde ja für einen Cronjob sprechen.

Ich weiß leider gerade nicht wie ich es anders lösen sollte. Hast du denn einen Vorschlag für einen anderen Ansatz?

DokuLeseHemmung 29.10.2012 19:16:54

AW: automatisierte Datenaktualisierung
 
Dann betrachte es doch mal von der Seite des Anfragenden. Dem ist egal ob der Server die ganze Zeit sinnlos pumpt. Der Anfragende möchte aktuelle Daten sehen. Was hält dich also davon ab, die Daten genau dann zu berechnen, wenn sie gebraucht werden?

Tsengo 29.10.2012 19:23:29

AW: automatisierte Datenaktualisierung
 
Achso,...hmm ok.

Das heißt solange die Personen offline sind nichts berechnen und erst wenn diese Online kommen dann zur Laufzeit ausrechnen und bei Bedarf mit Javascript oder ähnlichen Schleifen während der Onlinezeit weiterrechnen.

Das wäre eine Möglichkeit.

Danke für den guten Tipp :)

Ckaos 29.10.2012 21:46:16

AW: automatisierte Datenaktualisierung
 
Hi

Zitat:

Theorie ... Lösungsansatz ... zumal die Unterschiede teilweise nur wenige Sekunden betragen.
Und dann Cron's die jede minute laufen? Wohl falsches Konzept oder?
Glaub mir ich hab lange bei einem meiner Browserspiele getüftelt bis mir klar wurde
mit PHP+Cron läuft sowas nicht gut.

Zitat:

Dann mach es wie die großen
Glaub ich nicht das die das so machen ;)

Zitat:

Dann betrachte es doch mal von der Seite des Anfragenden. Dem ist egal ob der Server die ganze Zeit sinnlos pumpt.
Jo aber wir redeten doch von Rängen oder?
Was können die anderen dafür wenn manche nicht immer online sind?
Mein Rang ist ja nur dann was wert wenn ich ihn im vergleich sehe. Wenn jeder
nur seinen Rang sieht mag das ja aufgehen, aber ich würde an die Zukunft denken.

mfg

CKaos


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:05:05 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.