PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bestmögliche Lösung für einen Eventhandler


Don Colleone
27.10.2009, 23:37:20
Moin sehr geehrte Damen und Herren,

ich benötige für eine Idee, die ich gerne in nächster Zeit umsetzen würde, einen Tipp.

Und zwar bräuchte ich ein Programm (möglicherweise auf PHP-Basis oder zumindest auf Standard-Webspace), dass (milli-)sekundengenau Operationen in einer Datenbank ausführt. Also so ähnlich fungiert wie ein Cronjob.

Es gibt also eine Liste von Jobs mit Uhrzeiten, wann diese Operation ausgeführt werden soll

Also in etwa so:
14:56:12 Uhr - update anweisung für eine Mysqldb
15:12:43 Uhr - andere update anweisung

Es geht also um zeitgesteuerte Mysql-Operationen

Wie kann ich soetwas realisieren?

Mit freundlichen Grüßen
DonC

urvater
28.10.2009, 03:39:54
Wieso nicht per Cronjob?

Don Colleone
28.10.2009, 09:00:05
Kann der denn sekündlich oder besser gesagt millisekündlich aufgerufen werden, ohne, dass zu viel Ressourcen verbraucht werden?

urvater
28.10.2009, 10:48:09
In deinem Beispiel gehst du von einer Stunde Differenz aus. Jede Millisekunde ein Update ist definitiv nicht Ressourcen schonend. Wüsste eigentlich auch keinen gescheiten Grund ein Update automatisiert pro Millisekunde ausführen zu wollen.
Per Benutzeraktion wäre es da schon anders.
Wenn ich mich jetzt nicht irre sind aber gerade Inserts, Update und Deletes die größten Ressourcenfresser, bei gleichstarken Bedingungen.

Gerade solch kurze Zeiträume sollten generell aber Probleme bringen, da ja erst einmal ein Update abgeschlossen werden sollte bevor ein neues gestartet wird. Sicher können auch mehrere gleichzeitig gestartet werden aber auch nur bis zu einer bestimmten Anzahl. Sollte ich mich irren korrigiert mich.
Ein dauerhafter Prozess, der permanent immer das gleiche Update ausführt bevor der Vörgänger beendet wurde zwingt mit Sicherheit die DB/das System früher oder später in die Knie.

cortex
28.10.2009, 12:13:40
Kann der denn sekündlich oder besser gesagt millisekündlich aufgerufen werden

wozu - in gottes namen - braucht man einen cronjob, der mit einer genauigkeit von 1· E-03 s arbeitet...? wird hier möglicherweise versucht, eine aufgabenstellung mit einer unpassenden technologie / methode zu lösen?

cx

Don Colleone
28.10.2009, 18:35:47
In deinem Beispiel gehst du von einer Stunde Differenz aus. Jede Millisekunde ein Update ist definitiv nicht Ressourcen schonend. Wüsste eigentlich auch keinen gescheiten Grund ein Update automatisiert pro Millisekunde ausführen zu wollen.
Per Benutzeraktion wäre es da schon anders.
Wenn ich mich jetzt nicht irre sind aber gerade Inserts, Update und Deletes die größten Ressourcenfresser, bei gleichstarken Bedingungen.



Ich befürchte ich habe mich falsch ausgedrückt. Es soll nicht sekündlich oder Millisekündlich ein Update oder eine Operation ausgeführt werden, sondern nur mit einer solchen Genauigkeit. Es kann also auch Uhrzeiten geben, in denen es keine Operationen gibt, aber auch welche, in denen z.B. 10 gleichzeitig ausgeführt werden müssen.

Angenommen es stehen 3 Operationen an innerhalb einer ganz bestimmten Uhrzeit (z.B. 14:56:12 Uhr). Damit die Operationen in der richtigen Reihenfolge ausgeführt werden, müssen zwangsläufig die Millisekunden mit eibezogen werden, oder sehe ich das falsch?

cortex
28.10.2009, 18:52:51
Damit die Operationen in der richtigen Reihenfolge ausgeführt werden, müssen zwangsläufig die Millisekunden mit eibezogen werden, oder sehe ich das falsch?

es wäre sicher vorteilhaft, wenn du uns dein vorhaben detaillierter beschreibst - aus den bisherigen informationen kann man nicht besonders viel ableiten...

cx

feuervogel
28.10.2009, 19:54:25
Moin sehr geehrte Damen und Herren,

ich benötige für eine Idee, die ich gerne in nächster Zeit umsetzen würde, einen Tipp.

Und zwar bräuchte ich ein Programm (möglicherweise auf PHP-Basis oder zumindest auf Standard-Webspace), dass (milli-)sekundengenau Operationen in einer Datenbank ausführt. Also so ähnlich fungiert wie ein Cronjob.


millisekundengenau hieße ja quasi in echtzeit ohne irgendwelche verzögerungen. das wäre dann schon quasi rocket sience.

Don Colleone
29.10.2009, 10:48:55
es wäre sicher vorteilhaft, wenn du uns dein vorhaben detaillierter beschreibst - aus den bisherigen informationen kann man nicht besonders viel ableiten...

cx

ok, dann werde ich das mal tun:

Nach einer Benutzereingabe oder Aktion soll sofort ein zeitgesteuerter Query erstellt werden, der dann zu der gegebenen Uhrzeit ausgeführt wird.

Der normale Weg ist so:
- 14:35:23 Uhr der Benutzer klickt auf etwas
- 14:35:23 Uhr der Query (die Operation) wird in einer DB gespeichert
- 14:52:12 Uhr der Query wird ausgeführt

Allerdings können zu der Uhrzeit 14:52:12 Uhr auch noch weitere Queries ausgeführt werden, ebenfalls geplant.
Es geht im Prinzip um die Frage, wie ich einen zeitverzögerten Query erstelle.

PS: Danke für das Verschieben in dieses Board.

schrubba
29.10.2009, 11:18:39
Hallo,

nach meiner bisherigen Erfahrung ist das was Du vorhast nicht notwendig, ich hatte damit auch mal rumexperimentiert und letztendlich bin ich zu dem Schluss gekommen, die Events (was auch immer in Deinem Fall damit gemeint ist) zurückzurechnen. Mitunter muss dann aber Dein gesamtes Projekt daraufhin umgestellt werden. Schohnt erheblich die Ressourcen und ist absolut genau, wenn Du bei den Rückrechnungen auf die richtige Reihenfolge achtest.


Gruß
schrubba

Don Colleone
29.10.2009, 11:28:47
Hallo,

nach meiner bisherigen Erfahrung ist das was Du vorhast nicht notwendig, ich hatte damit auch mal rumexperimentiert und letztendlich bin ich zu dem Schluss gekommen, die Events (was auch immer in Deinem Fall damit gemeint ist) zurückzurechnen. Mitunter muss dann aber Dein gesamtes Projekt daraufhin umgestellt werden. Schohnt erheblich die Ressourcen und ist absolut genau, wenn Du bei den Rückrechnungen auf die richtige Reihenfolge achtest.
schrubba

Das klingt schonmal ganz sinnvoll, allerdings viel mir gerade ein, dass das Event, das in der DB gespeichert wird nicht nur eine Datenbankoperation sein kann. Möglicherweise muss auch ein Skript ausgeführt werden, um weitere Berechnungen durchzuführen.

schrubba
29.10.2009, 11:42:13
Ich lasse auch fast alles von PHP berechnen, packe aber viele kleine Berechnungen und Operationen mit in die Query, sodaß dies die DB umsetzt.

Kommt halt stark drauf an, was man genau berechnen will/muss. Operationen, welche die DB erledigen kann, sollte man auch nutzen, da es "meistens" performanter ist.


Gruß
schrubba