Spring Boot @Cacheable перестал работать после того, как я переместил метод в тот же классJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot @Cacheable перестал работать после того, как я переместил метод в тот же класс

Сообщение Anonymous »

Я провожу небольшой рефакторинг в своем проекте и столкнулся с действительно странной проблемой.
У меня есть класс обслуживания, который занимается получением и анализом данных из API. До рефакторинга у меня был специальный класс только для этого метода кэша, а теперь я переместил его сюда, но он внезапно перестал работать. (Когда я устанавливаю точку останова внутри метода кеша, она вызывается каждый раз, когда я вызываю этот метод, раньше она вызывалась только в первый раз, а затем возвращала значение из кеша)
Здесь мой класс обслуживания:

Код: Выделить всё

    private static final String TRANSPORT_LOCATIONS = "transportLocations";
private static final String CACHE_MANAGER = "cacheManager";
private static final String ROOT_METHOD_NAME = "#root.methodName";
private static final int FALLBACK_TIMEOUT = 1000;

...

@Override
public List fetchAllTransportsLocations() throws Exception {
final var bodyStructure = createTransportLocationBody();
final String body = buildBody(bodyStructure);
final String url = transportLocationApiUrl + getCurrentTimeStamp();
final HttpResponse response = getTransportsLocations(url, body);
if (isResponseBad(response.statusCode())) {
LOG.error(GET_TRANSPORT_LOCATION_BAD_REQUEST_ERROR_MESSAGE);
return createEmptyList();
}
return mapTransportsLocationsResponse(response.body());
}

@Cacheable(value = TRANSPORT_LOCATIONS, cacheManager = CACHE_MANAGER, key = ROOT_METHOD_NAME, sync = true)
private HttpResponse getTransportsLocations(final String url, final String body) throws Exception {
HttpResponse response = httpService.sendPostRequestWithBody(url, body);
if (isResponseBad(response.statusCode())) {
response = handleBadRequest(url, body);
}
return response;
}

private HttpResponse handleBadRequest(final String url, final String body) throws Exception {
LOG.error(GET_TRANSPORT_LOCATION_CACHE_BAD_REQUEST_ERROR_MESSAGE);
Thread.sleep(FALLBACK_TIMEOUT);
return httpService.sendPostRequestWithBody(url, body);
}
Вот мой класс кэшаConfig

Код: Выделить всё

    @Bean
public net.sf.ehcache.CacheManager ehCacheManager() {
final CacheConfiguration transportLocationCache = new CacheConfiguration();
final net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();

transportLocationCache.setName(CACHE_NAME);
transportLocationCache.setMaxEntriesLocalHeap(ENTRIES_LOCAL_HEAP);
transportLocationCache.setMemoryStoreEvictionPolicy(LRU);
transportLocationCache.setTimeToLiveSeconds(TTL_SECONDS);
config.addCache(transportLocationCache);

return net.sf.ehcache.CacheManager.newInstance(config);
}

@Bean
@Override
public CacheManager cacheManager() {
return new EhCacheCacheManager(ehCacheManager());
}
У вас есть идеи, что может быть не так?
Большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/654 ... same-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»