Prosta biblioteka buforowania Java lub wzorzec projektowania?
Muszę często uzyskiwać dostęp do wyniku czasochłonnych obliczeń. Wynik rzadko się zmienia, więc muszę od czasu do czasu przeliczać dane, ale można przez jakiś czas używać przestarzałego wyniku. Jaki byłby najprostszy sposób, aby to zrobić i czy istnieje istniejąca metoda biblioteki lub wzór projektu?
Myślę o czymś takim
private static List myCachedList = null;
...
// refresh list once in 3600 seconds
if (needsRefresh(myCachedList, 3600)) {
// run the calculation
myCachedList = ...
}
// use either updated or previous value from here on
Właściwa implementacja może nie być trywialna, może mieć do czynienia z bezpieczeństwem wątków, warunkami wyścigu itp., Więc wolałbym użyć sprawdzonej implementacji niż rzucać własnymi tutaj.