0

스프링 액추에이터를 다시 시작하려고합니다./다시 시작하는 엔드 포인트는 컬을 사용하여 작동하지만 동일한 기능을 사용하려고합니다. 응용 프로그램 내부에서 자바 코드, 나는이 코드를 시도했지만, 제대로 동작하지 않습니다 : 그것은 예외가 발생합니다에도 불구하고,자바 함수를 사용하여 스프링 부트에서 스프링 액추에이터/엔드 포인트를 다시 시작하십시오.

@Autowired 
private RestartEndpoint restartEndpoint; 

... 

Thread restartThread = new Thread(() -> restartEndpoint.restart()); 
restartThread.setDaemon(false); 
restartThread.start(); 

의미가 있습니다 :

Thread thread = new Thread(new Runnable() { 
    @Override 
    public void run() { 
     RestartEndpoint p = new RestartEndpoint(); 
     p.invoke(); 
    } 
}); 
thread.setDaemon(false); 
thread.start(); 

답변

9

당신은 RestartEndPoint을 주입 할 필요가 이로 인해 메모리 누수가 발생할 수 있음을 알립니다 :

웹 응용 프로그램 [xyx]이 (가) [Thread-6]이라는 스레드를 시작한 것으로 보이지만 중지하지 못했습니다. 이렇게하면 메모리 누수가 발생할 가능성이 큽니다. 스레드의 스택 추적 :이 질문/대답의 미래 독자

  • 주, RestartEndPointspring-boot-actuator에 포함되지 않습니다, 당신은 spring-cloud-context 종속성을 추가해야합니다.
+0

감사합니다. 주사를 놓쳤습니다. – geogeek

관련 문제