Эх сурвалжийг харах

cache current user by token for 5min

Daniel Bohry 3 долоо хоног өмнө
parent
commit
6546da5075

+ 2 - 0
src/main/java/com/danielbohry/stocks/client/AuthClient.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.HttpClientErrorException;
@@ -23,6 +24,7 @@ public class AuthClient {
     @Value("${auth.api}")
     private String BASE_URL;
 
+    @Cacheable(value = "current", key = "#token")
     public CurrentUser current(String token) {
         HttpHeaders headers = new HttpHeaders();
         headers.add("Authorization", token);

+ 3 - 2
src/main/java/com/danielbohry/stocks/config/CacheConfig.java

@@ -30,14 +30,15 @@ public class CacheConfig {
         CaffeineCache stockInfo = build("stockInfo", FIVE_MINUTES);
         CaffeineCache stockHistory = build("stockHistory", FIVE_MINUTES);
         CaffeineCache portfolioHistory = build("portfolioHistory", SIX_HOURS, 100);
+        CaffeineCache current = build("current", FIVE_MINUTES);
 
         SimpleCacheManager manager = new SimpleCacheManager();
-        manager.setCaches(List.of(exchangeRates, allStockQuotes, stockQuotesQuery, stockQuotes, stockInfo, stockHistory, portfolioHistory));
+        manager.setCaches(List.of(exchangeRates, allStockQuotes, stockQuotesQuery, stockQuotes, stockInfo, stockHistory, portfolioHistory, current));
         return manager;
     }
 
     private CaffeineCache build(String name, Duration duration) {
-        return build(name, duration, 500);
+        return build(name, duration, 1000);
     }
 
     private CaffeineCache build(String name, Duration duration, long size) {