내 클라이언트가 독립 실행 형 응용 프로그램에서 사용하는 간단한 API가 있습니다. 배후에서 나의 API는 성능을 위해 Ehcache를 사용합니다.독립 실행 형 응용 프로그램에서 Ehcache CacheManager를 종료하는 방법
내 클라이언트가 내 스레드에서 shutdown()
메서드를 호출하여 CacheManager.shutdown()
을 호출해야합니다.이 경우 메인 스레드가 완료 되어도 Ehcache가 백그라운드에서 계속 실행되지 않습니다.
내 고객을위한이 추가 shutdown()
전화를 피할 수있는 방법이 있습니까?
@PreDestroy Spring annotation을 사용하여이 호출을 시도했지만 작동하지 않았습니까?
예제 클라이언트 프로그램을 추가하고 있습니다.
public class ClientApp{
@Autowired
private IClientService service;
public static void main(String[] args){
try{
service.getClients();
...
} finally {
service.shutdown(); // to shutdown the cache background thread
}
}
}
는 ClientServiceImpl.java, 나는 다음과 같은 라인
public void shutdown(){
LOGGER.info("Shutting the cache down...");
ehcacheManager.shutdown();
}
안녕하십니까, 애플리케이션에서 API의 수명주기를 설명하지 않으므로 언급하기가 어렵습니다. 그 정보를 질문에 추가 할 수 있습니까? –
감사합니다. @LouisJacomet. 나는 샘플 프로그램을 추가했다. 보시다시피, 내 고객은 명시 적으로'shutdown()'을 호출해야했습니다. IClientService 구현은 Spring을 통해 자동 실행됩니다. – MFIhsan