Effizientes Implementieren eines regelmäßigen In-Memory-Refresh-Mechanismus in einer Spring-Anwendung, schlagen Sie für Java

Java-Forum
Guest
 Effizientes Implementieren eines regelmäßigen In-Memory-Refresh-Mechanismus in einer Spring-Anwendung, schlagen Sie für

Post by Guest »

Die Anforderung für mein Projekt besteht darin, einen Aktualisierungsmechanismus für In-Memory-Daten in bestimmten Zeitintervallen in einer Spring-Anwendung einzuführen. Die Details sind wie folgt:
Die Anwendung verwendet einen MinIO-Server (S3 Object Storage), auf dem JSON-Dateien gespeichert sind.
Diese Dateien müssen in einer Map in den Speicher geladen werden< String, Map>-Format vor dem Start der Anwendung. Dies wird derzeit mithilfe der @PostConstruct-Annotation implementiert.
Das Projekt erfordert nun die Einführung eines Aktualisierungsmechanismus für den Speicher. In Zukunft muss die Anwendung diese In-Memory-Daten in regelmäßigen Abständen (z. B. alle 5 Minuten) aktualisieren, um Folgendes widerzuspiegeln:
Änderungen an vorhandenen Dateien.
Hinzufügen neuer Dateien im MinIO-Bucket.
Die Aktualisierung sollte effizient sein und keinen Neustart der gesamten Spring-Anwendung erfordern.
Ich habe den anfänglichen Dateilademechanismus mithilfe der @PostConstruct-Annotation implementiert, die die Dateien währenddessen erfolgreich in den Speicher lädt Anwendung Startup.
Für den Aktualisierungsmechanismus bestand meine ursprüngliche Idee darin, die @Scheduled-Annotation von Spring zu verwenden, um den MinIO-Bucket regelmäßig alle 5 Minuten zu überprüfen.
Die Aufgabe würde:
  • Erkennen Sie Änderungen in den vorhandenen Dateien oder identifizieren Sie neue Dateien.
  • Aktualisieren Sie die im Speicher befindlichen Map mit den geänderten oder neuen Daten.
Ich erwarte eine Lösung oder Bestätigung, wie dieser Aktualisierungsmechanismus am besten implementiert werden kann. Konkret:
  • Ist meine Idee, @Scheduled für diesen Anwendungsfall effizient zu verwenden?
  • Gibt es bessere Ansätze zur Erkennung? Dateiänderungen oder Ergänzungen im MinIO-Bucket, ohne alle Dateien in jedem Intervall zu scannen?
  • Wie kann ich den Leistungsaufwand minimieren und gleichzeitig sicherstellen, dass der Speicher immer mit den neuesten Daten aktualisiert wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post