Softwaretrigger (X-Server/MySql)
-
Ist es unter Linux möglich einen Softwaretrigger zu installieren der ausgelöst
wird sobald ein neues Fenster geöffnet wird oder sich die Daten in einer
MySql Datenbank ändern?
-
Hallo,
Linux kann Dateisysteme und Dateien auf Veränderungen mit inotify überwachen.
Für die Fenstersache würde ich mir die xlib API für Windowmanager anschauen.
-
Ist die Dateiüberwachung eine professionelle Lösung?
Bzw. werden in der Standardkonfiguration von MySql kleine Änderungen
auch garantiert auf die Festplatte rausgeschrieben und nicht in einem
Cache gehalten?In der XLib habe ich bisher nur Funktionen gefunden, um den Zustand bestimmter
Fenster zu verändern und keine Callbacks die ein beliebiges Programm über neue Fenster informieren.
-
MySQL kennt doch selber Trigger. Z.B. bei jedem Update.
Warum nicht sowas nehmen?Bei der Windowmanager Schnittstelle zur xlib war der Gedanke, dass ein WM ja jedes neugeöffnete Fenster automatisch mit einem Rahmen verziert. Also muss der WM ja irgendwie darüber informiert werden, dass ein neues Fenster erstellt und geöffnet werden soll.
-
Stell es dir so vor:
Die Daten in der Datenbank werden sporadisch über ein PHP Frontend durch den Kunden verändert.
Der Inhalt der Daten beeinflusst das Verhalten des Gesamtsystems.
Damit also die Daemons nicht bei jeder Aktion auf die Datenbank zugreifen
wäre es sinnvoll wenn Sie eine Kopie im Hauptspeicher halten würden und
diese nur aktualisieren wenn sich in der Datenbank was geändert hat.Vielleicht ist das caching von MySql aber auch so gut,
dass zyklischer Zugriff auf die Datenbank auch keinen Unterschied macht.
Was meint ihr?Zum Thema XLib: Weiß da jemand was genaueres?
-
Sovok schrieb:
Zum Thema XLib: Weiß da jemand was genaueres?
Ja. Und die Frage habe ich dir schonmal beantwortet. Und zwar hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-216815-and-highlight-is-.html
Wie gesagt mit der Funktion
XSelectInput(display, win, ExposureMask);
kannst du auswählen von welchem Fenster du Events empfängst.Da ja alle Fenster Kinder der Root-Fensters sind, solltest du einfach dieses Überwachen können. Falls das nicht funktioniert, so hat ein NetWM kompatiebler Fenstermanager auch eine Liste aller Fenster, die du halt alle paar sekunden abfragen kannst. Soweit ich weiß, bieten Fenstermanager auch die Möglichkeit an, sich über neue Fenster informieren zu lassen.
-
CreateNotify könnte funktionieren.
Werds mal testen.
Aber Polling ist in jedem Fall die schlechteste Lösung.