Susanne21 hat gesagt.:
ich möchte zb 1x in der woche die daten sichern und aus der db löschen. woher kann mein programm wissen das schon eine woche rum ist ?
mit dem thread finde ich nichso gut. wenn das programm mal aus irgedneinem grund am 6ten tag abschmiert sind fast 2 wochen "datenmüll" in der db.
ich könnte eine extra tabelle in der datenbank anlegen und für das ganze jahr die service dates eintragen. aber ist das nicht auch irgednwie unelegant ??
danke
- indem es die aktuelle Systemzeit in ms (siehe System.currentTimeMillis()) von dem gemerkten letzten Speicherungszeitpunkt (ebenfalls in ms) abzieht

Dann aus ms tage rechnen und gut iss
- naja irgendwoher musst du schon wissen wann die letzte Speicherung gemacht wurde. Das kannst du in der Datenbank speichern, eventuell kannst du auch das Datum deiner letzten Sicherung aus dem Sicherungsfile selbst bekommen anhand des Erstellungsdatum (Ich weiss jetzt aber nicht ob Java das kann

)
wenn das geht wär das ja der schönste Weg, ansonsten würd ichs in die DB hauen, da kann ja dann auch grad das zu benutzende Intervall drinstehen, wenn man ja schonmal ne Tabelle für solche Einstellungen angelegt hat
- 2 Wochen db-Müll? ne, der eigene Tread soll ja nicht 2 Wochen sleepen bis er wieder wach wird, sondern einen Tag sleepen, oder eine STD je nach zu benutzendem Intervall. Dann ist es auch egal ob das Programm zwischendrinn mal abschmiert, weil das bestimmende ja nicht die Wartezeit des Threads ist sondern der Unterschied zwischen gemerkte Zeit (würd ich in ms ablegen) und aktueller Systemzeit
Also wenn du eh ne Stelle hast die oft aufgerufen wird frag an der Stelle die aktuelle Systemzeit ab und vergleich sie mit der (in der Datenbank gespeicherten oder sonstwie beschafften) Zeit der letzten Sicherung. Dann hast dus.
Das Löschen aus der Datenbank kann eigentlich auch nicht so schwer sein, du selectest ja eh auf die Datenbank mit einem bestimmten Datum (alle Datensätze die kleiner sind als Aktuelles Datum /Zeit/Millisekunden/...). genau die Bedingung kannst du mit in die delete-anweisung bauen, dann werden genau die gelöscht die auch gesichert wurden
