스케줄러 디먼
스케줄러 디먼은 데이터베이스에서 실행할 태스크를 검색하는 백그라운드 스레드입니다.
스케줄러 디먼은 각 서버에 정의된 각 스케줄러에 대해 시작됩니다. Scheduler 1이 server1에 구성되면, 복제본이 아닌 경우 하나의 스케줄러 디먼만 server1에서 실행합니다. Scheduler 1이 노드 범위 레벨에 정의되면, 스케줄러는 그 노드 내 각 서버에서 실행됩니다.
폴링 간격은 지속적 저장소가 쿼리되는 빈도를 판별합니다. 기본적으로 이 값은 30초로 설정됩니다. 현재 폴링 간격 내에 실행하도록 스케줄된 태스크가 발견되면, 비동기 Bean 알람이 설정됩니다. 그런 다음 태스크는 스케줄러의 연관된 작업 관리자에서 알람 스레드를 사용하여 가능한 이 시간에 근접하여 실행합니다. 그러므로, 작업 관리자에서 구성된 알람 스레드의 수가 실행되는 동시 태스크의 수를 판별합니다. 손실된 태스크는 없습니다. 이 한계에 도달한 경우, 알람 스레드가 사용 가능하게 되면 새 태스크가 실행되도록 큐에 넣어집니다. 실제 시작 시간은 연관된 작업 관리자의 알람 스레드 풀에서 빈 스레드의 가용성 및 서버 로드로 결정됩니다.
클러스터의 스케줄러 디먼
다중 스케줄러가 동일한 테이블을 사용하도록 구성되면(클러스터 환경에서의 경우처럼) 디먼은 태스크를 찾고 해당 JVM(Java™ Virtual Machine)에서 알람을 설정할 수 있습니다. 디먼이 중지되고 다른 디먼이 시작될 때까지 스케줄러 디먼이 먼저 실행되는 가상 머신에서 태스크가 실행됩니다. server1에 대한 애플리케이션이 태스크를 실행하도록 스케줄링하고 server2가 server1 이전에 시작된 경우, 태스크는 server2에서 실행됩니다.
- 관리 콘솔에서 자원 > 스케줄러를 클릭하십시오.
- 기존 스케줄러를 콜렉션에서 선택하거나 새 스케줄러를 작성하십시오.
- 추가 특성에서 사용자 정의 특성을 선택한 다음 새로 작성을 클릭하십시오.
- 이름 필드에서 daemonAutoStart를 지정하고 이 기능을 사용 또는 사용
안함으로 설정할 것인지 여부에 따라 값 필드에서 false 또는 true를
지정하십시오.
설명 필드에서 이 사용자 정의 특성의 설명을 지정할 수 있지만 이 필드가 필요하지 않습니다.
- 유형을 java.lang.String으로 설정합니다. java.lang.String은 이 필드의 기본 설정입니다.
- 확인을 클릭하고, 사용자의 구성 변경사항을 저장하려면 저장을 클릭하십시오.
- 서버를 다시 시작하십시오.
스케줄러의 자동 시작을 다시 사용으로 설정하려면, 사용자 정의 특성의 값을 true로 변경하거나 사용자의 스케줄러 설정에서 사용자 정의 특성을 삭제하십시오. 이 특성의 값을 변경하거나 스케줄러 구성 설정에서 이 특성을 삭제한 후, 구성을 저장하고 서버를 다시 시작해야 합니다.
daemonAutoStart 특성의 기본값은 true입니다.