jeudi 5 février 2015
Objekt Cache schreiben?
Posted on 06:13 by verona
Guten Tag,
bin mir nicht ganz sicher ob es noch als Basic Thema gilt, ich bin aber auf alle Fälle Java Anfänger mit starkem Python und C Hintergrund. Ich versuche mal hier mein Glück.
Folgendes Problem:
Ich habe eine Android App mit GUI, lokaler MySQL Datenbank und einer MySQL Datenbank im Internet die nicht immer zu erreichen ist.
Der GUI soll nun die Daten, die in der lokalen MySQL DB stehen anzeigen. Der GUI kann dabei keine Änderungen vornehmen sondenr zeigt die Daten nur einfach an. Die lokale MySQL DB sollte im Ideal eine Kopie der remoten DB sein was sie aber auf Grund des fehlenden Internets nicht immer ist. Nun habe ich einen Service geschrieben, der sobald er Kontakt zur remoten DB hat die lokale DB updated. Soweit so gut.
Ich möchte aber, dass auch die GUI automatisch von diesem Update erfährt und zwar ohne ständig die Lokale DB pollen zu müssen.
Die Idee war nun: Der GUI arbeitet mit s.g. Entry Objects. Diese bekommt er aus der lokalen DB. Zusätlich hält sich die lokale DB eine referenz auf diese Objekte und kann sie somit direkt Updaten wenn die Daten in die lokale DB geschrieben werden.
Das bedeutet aber, dass der GUI der lokalen DB irgendwie sagen müsste, wann er einen Entry nicht mehr brauch + das die lokale DB dann entscheiden muss, ob sie dieses Entry Object löscht oder noch im RAM behält.
Meine Frage ist nun: wi emacht man das am geschicktesten in Java?
Gibt es einen Referenz Counter für jedes Objekt auf den man Zugreifen kann sodass die lokale DB sieht, dass sie als einzige noch diesen Entry hält? Gibt es eine Nachricht vom Garbage Collector wenn Ram benötigt wird oder kann man ein Objekt als "Darf weggeräumt werden" markieren um später zu sagen "Halt, brauche es doch noch!"? (also im Falle, dass es noch nicht weggeräumt wurde).
Nun zu dem wie ich es zu Lösen versuche (was vemrutlich eine Total *****ische Lösung ist aber ich bin ja auch Java Anfänger ^^)
Für mich klingt es nach einer klassischen Singleton Situation. Jeder Entry existiert genau nur einmal also könnte ich doch eine Singleton Klasse schreiben, die zwar nicht Klassenweit ein Singleton ist sondern auf Klasse+Parameter Basis. Dies würde fast alle meine Probleme erschlagen. Die Frage ist nur, geht das so überhaupt in Java?
Euch einens chönen Gruß,
p90
bin mir nicht ganz sicher ob es noch als Basic Thema gilt, ich bin aber auf alle Fälle Java Anfänger mit starkem Python und C Hintergrund. Ich versuche mal hier mein Glück.
Folgendes Problem:
Ich habe eine Android App mit GUI, lokaler MySQL Datenbank und einer MySQL Datenbank im Internet die nicht immer zu erreichen ist.
Der GUI soll nun die Daten, die in der lokalen MySQL DB stehen anzeigen. Der GUI kann dabei keine Änderungen vornehmen sondenr zeigt die Daten nur einfach an. Die lokale MySQL DB sollte im Ideal eine Kopie der remoten DB sein was sie aber auf Grund des fehlenden Internets nicht immer ist. Nun habe ich einen Service geschrieben, der sobald er Kontakt zur remoten DB hat die lokale DB updated. Soweit so gut.
Ich möchte aber, dass auch die GUI automatisch von diesem Update erfährt und zwar ohne ständig die Lokale DB pollen zu müssen.
Die Idee war nun: Der GUI arbeitet mit s.g. Entry Objects. Diese bekommt er aus der lokalen DB. Zusätlich hält sich die lokale DB eine referenz auf diese Objekte und kann sie somit direkt Updaten wenn die Daten in die lokale DB geschrieben werden.
Das bedeutet aber, dass der GUI der lokalen DB irgendwie sagen müsste, wann er einen Entry nicht mehr brauch + das die lokale DB dann entscheiden muss, ob sie dieses Entry Object löscht oder noch im RAM behält.
Meine Frage ist nun: wi emacht man das am geschicktesten in Java?
Gibt es einen Referenz Counter für jedes Objekt auf den man Zugreifen kann sodass die lokale DB sieht, dass sie als einzige noch diesen Entry hält? Gibt es eine Nachricht vom Garbage Collector wenn Ram benötigt wird oder kann man ein Objekt als "Darf weggeräumt werden" markieren um später zu sagen "Halt, brauche es doch noch!"? (also im Falle, dass es noch nicht weggeräumt wurde).
Nun zu dem wie ich es zu Lösen versuche (was vemrutlich eine Total *****ische Lösung ist aber ich bin ja auch Java Anfänger ^^)
Für mich klingt es nach einer klassischen Singleton Situation. Jeder Entry existiert genau nur einmal also könnte ich doch eine Singleton Klasse schreiben, die zwar nicht Klassenweit ein Singleton ist sondern auf Klasse+Parameter Basis. Dies würde fast alle meine Probleme erschlagen. Die Frage ist nur, geht das so überhaupt in Java?
Euch einens chönen Gruß,
p90
Objekt Cache schreiben?
Categories: Objekt Cache schreiben?
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire