Wpis z mikrobloga

Jest taka sytuacja.

1. Do wysyłania jakichś tam rzeczy pobierane są ustawienia z bazy danych.
2. Chcesz się zabezpieczyć na wypadek utraty połączenia z bazą danych.
3. Plik z wpisanymi na stałe danymi odpada, bo dobrze by było jakby sobie aplikacja codziennie raz odświeżała te ustawienia.
4. W jaki sposób trzymać te ustawienia, żeby to było zrobione porządnie?

#java #programowanie
  • 3
@Murasame: trzymasz dane w pamięci. Po ustalonym przez ciebie czasie dane są już nie ważne i trzeba je zaciągnąć z bazy, więc baza może leżeć przez dłuższy czas Alternatywnie możesz ustawić czas życia danych na dłuższy niż czas odświeżania, więc odświeżenie pójdzie w tle a w tym czasie aplikacja będzie dalej te starsze dane + jeśli różnica będzie duża to można próbować kilka razy. Takie ficzery fajnie da się konfigurować za
@Murasame: jak ma być porządnie to (1) nie pukałbym by bezpośrednio do bazy tylko do jakiejś usługi która wystawiałaby API, (2) to pozwoliłoby też na "customizację" protokołu, na przykład z autentykacją poprzez OAuth lub podobny mechanizm, który pozwoliłby na zastosowanie Refresh Tokenów od odnawiania dostępu.
@Murasame: Zależy od 10000 czynników, ale generalnie najprościej tak jak wyżej, w pamięci (guava cache, whatever, łatwiej to samemu nawet napisać) - dochodzi jedna kwestia jeszcze, jak Ci sie appka zrestartuje a nadal nie bedziesz miał połączenia z bazą to co ? jeżeli masz jakiś podręczny storage (na k8s jest np: configmapa) mozesz to tam wsadzić, masz dodatkowe zabezpieczenie.