MySQL Allgemeine Frage zu Polling

swas

Mitglied
Hallo Leute,

ich hab mal eine Frage zum Polling einer Datenbank und ob sich das irgendwie vermeiden lässt.

Also ich möchte folgende Aufgabe lösen:
Ich habe ein Programm das auf dem Server läuft und mithilfe einer DB Statuswert bekommt. Diese Information wird von einem Benutzer eingetragen und je nachdem startet das Programm und erledigt seine Aufgabe.

Bei einer Oracle DB hätte ich das jetzt mithilfe des dbms_alert Package gelöst. Da hätte ich eine schöne Lösung ohne ständiges Polling hinbekommen. Das Programm hätte auf die DB gewartet bis die einen Alert auslöst und dann hätte das Programm loslegen können.

Bei MySQL gibt es diese Funktion leider nicht. Deshalb werde ich das wohl durch ein ständiges Polling auf die Datenbank lösen. Diese Lösung gefältt mir nicht wirklich.

Deshalb wollt ich mal Fragen, ob da jemand evtl. eine andere Idee hat.

Gruß,
swas
 
Hey,

die UserDefinedFunctions (UDF) hab ich auch schon gesehen. Aber leider wollte ich vermeiden, dass ich da irgendwie von außen mein Programm nochmal anstoßen müsste.

Bei Oracle ist es nunmal so, dass ich innerhalb meines Programmes auf einen Alert warte und dann weiter machen kann.

So etwas gibt es aber wohl nicht, außer über die UDFs.

Danke Dir trotzdem. ;)
 
Du musst da nix von außen anstoßen. Der Trigger wird ausgeführt, sobald die im Trigger angegebene Aktion ausgeführt wird. Und das ist auch keine User-Defined-Function sondern ein simpler Trigger, den eigentlich jede Datenbank unterstützen sollte. Im Beispiel rennt der Trigger los, sobald ein INSERT-Statement commited wurde. Der Trigger ruft dann implizit das angebene Shell-Script mittels sys_exec() auf.

Du musst da gar nix machen, das passiert alles automatisch.

EDIT: Ich sehe grad, du hast recht. Es ist ein zusätzliches Plugin nötig. Mea culpa.
 
Jup leider. Finde die Lösung mithilfe von dbms_alert bei Oracle sehr elegangt. Das ist sowas ähnliches wie ein Observermuster.
Ich könnte natürlich diese Lösung mit sys_exec() und Shell-Script nutzen. Jedoch lohnt sich der Aufwand für meine Anwendung nicht.
Einen Tod muss man nunmal sterben. ;)
 
Zurück