클러스터 된 환경에 배포 된 응용 프로그램이 있습니다. 5 분마다 응용 프로그램은 연결된 모든 다른 응용 프로그램에 ping 작업을 전송합니다. 우리는이 작업을하기 위해 비 영구적 인 Quartz 스케쥴러를 사용했다.Java의 비 영구적 인 석영 스케줄러
클러스터 된 환경에서 하나의 노드 만이 활동을 수행하고 있습니다 (ping 조작). 이에 대한 참조 또는 샘플 코드가 있습니까? (이것은 일반 서블릿 애플리케이션입니다.)
클러스터 된 환경에 배포 된 응용 프로그램이 있습니다. 5 분마다 응용 프로그램은 연결된 모든 다른 응용 프로그램에 ping 작업을 전송합니다. 우리는이 작업을하기 위해 비 영구적 인 Quartz 스케쥴러를 사용했다.Java의 비 영구적 인 석영 스케줄러
클러스터 된 환경에서 하나의 노드 만이 활동을 수행하고 있습니다 (ping 조작). 이에 대한 참조 또는 샘플 코드가 있습니까? (이것은 일반 서블릿 애플리케이션입니다.)
모든 노드가 클러스터에서 작동하므로 모든 작업이 단일 시스템 (가장 유휴 상태 인 시스템)에서 실행됩니다. 이것이 클러스터링을 사용하는 이유입니다. 그러나 모든 시스템이 다른 클러스터 노드를 인식하지 못하고 독립적으로 주어진 작업을 수행하기를 원합니다. 기본적으로 Quartz (클러스터)는 전혀 필요하지 않습니다!
는 충분히 ScheduledExecutorService.html#scheduleAtFixedRate()
을 사용하는 것입니다
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable pinger = new Runnable() {
public void run() {
//send PING
}
};
scheduler.scheduleAtFixedRate(pinger, 5, 5, MINUTES);
그냥 모든 컴퓨터에이 코드를 실행하고 당신이 그것을 필요로하는 곳에 석영을 사용합니다.
위의 코드를 클러스터 환경에서 테스트했는데 완벽하게 작동했습니다. 이제 저는 여기서 한 가지 더 도전하고 있습니다. 언제든지 이러한 스케줄러를 시작하고 중지 할 수있는 방법이 있습니까? –
@RajeshGupta : 다른 질문을 열고 후속 링크로 의견을 말하십시오. –
질문을 쉽게 읽을 수 있도록 몇 가지 문구를 업데이트했습니다. 그러나 첫 번째 문장의 의미에 대해서는 잘 모르겠습니다. 당신은 단 하나의 노드 **가 ** 핑을 보내고 있다고 말하고 있습니까? 나머지는 원하십니까? 또는 귀하의 ** 요구 사항 **은 단 하나의 노드가 핑을 보내도록하는 것이지만, 현재 모든 노드는 무엇입니까? –
예 하나의 노드 만 ping 작업을 수행하고 있습니다. 다른 모든 노드가 ping 작업을 수행하기를 원합니다 (클러스터 환경) –