2014-11-12 3 views
0

스프링 어플리케이션 컨텍스트에서 현재 관리되고있는 스케줄러 목록을 확인할 수있는 방법이 있습니까? 저는 석영 스케쥴러를 구성한 응용 프로그램을 가지고 있으며 해당 스케쥴러가 활성 상태인지 확인하려고합니다 (스케쥴러가 현재 작업을 실행 중임을 의미하지는 않습니다). 웹 리소스의 URL을 호출하고 응답을 확인하여 웹 리소스가 활성 상태인지 확인하는 것과 같습니다 (200 또는 404).스프링 관리 스케줄러 상태

감사합니다.

답변

0

필요에 따라 다음 중 하나를 수행 할 수 있습니다 : 당신은 단지 응용 프로그램 시작시에이를 확인해야하는 경우

  • , 당신은 단지 로그를 확인할 수 있습니다. quartz가 시작할 때 기록됩니다. "org.springframework.scheduling.quartz"네임 스페이스가 디버그 모드로 로그인되도록 로거를 구성해야합니다.
  • 스케줄러가 시작될 때마다 확인하려면 quartz jmx 기능을 사용할 수 있습니다. 쿼츠 속성 파일에 "org.quartz.scheduler.jmx.export = true"를 추가하면됩니다. 그런 다음 애플리케이션을 대상으로하는 JConsole을 열고 열면 다양한 속성과 연산을 찾을 수있는 "석영"노드를 사용할 수 있습니다. 첫 번째 것은 실제로 "시작됨"입니다. 사용자가 요청한 스케줄러가 시작되었지만 많은 다른 사용자도 있습니다.

JConsole을 여는 방법을 모르는 경우에는 Sun의 설명서를 참조하십시오. https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html에서이 다른 주제와 여기에서 설명하기 너무 많이로

    당신은 scheduler.isStarted 당신이에서 액세스 할 스케줄러 빈을 주입하고, 호출하여, 프로그램도 이러한 정보에 액세스 할 수 있습니다
  • () 방법. 그러나이 방법으로 요청시이 정보를 노출하는 방법을 구현할 것입니다
  • 쿼츠 데이터베이스를 사용하는 경우 스케줄러가 실행 중일 때 체크인 시간이 수초마다 변경된다는 QRTZ_SCHEDULER_STATE 테이블을 확인할 수도 있습니다.