고정 된 간격의 5 분 간격으로 2 개의 별도 독립 실행 형 Java 폴링 도구를 실행하는 시나리오가 있습니다.TaskExecutorService를 Java에서 겹쳐 쓰는 작업을 무시하는 방법
MY 시나리오는 (각 폴링 서비스)입니다 :
작업 T0 실행하는 데 5 분 이상이 필요하고 그 사이에 5 분 후에 T5가 와서 실행하려고하면1), 내가, 그것을하지 버릴 것 대기 또는 재시작 (중복 작업 무시)
2) 다음 작업은 T10에서 정상적으로 시작됩니다.
제 질문은 쿼츠를 사용하는 것입니다. 나는 TaskExecutorService를 사용하여 어떻게 X-5가 이미 실행 중이고 한번 작업을 시작했는지 확인할 수 있습니까?
주 : 1) 나는 봄처럼 어떤 프레임 워크에서 JDK < = 6.0
2) 내가 사용하고 있지 않다을 사용해야합니다.
모든 코드 또는 방향
가 감사 ..3)의 데스크탑 도구는 그래서 그것을 실행 필요가 실행됩니다. 아래 주석의 대답에 대한 업데이트 된
:예는 하나의 도구에서 실행되는 작업 사이. 도구가 다르거 나 도구간에 연결이 없으면 별도로 실행되며 관계가 없습니다.
하나의 도구가 5 분 간격으로 동일한 작업을 실행합니다 (모든 파일 분과 같이 파일의 디렉토리를 찾고 발견 된 파일은 해당 파일을 분석하고 함께 작업합니다).
예를 들어 작업이 현재 1 분부터 시작되면 (예 : 시간이 걸릴 수 있음) 5 분 후에 도구가 새 파일을 다시 찾고 작업을 시작하지만 이번에는 이전 작업이 이미 일부 파일 처리를 실행하고 있으므로 새 작업이 실행되지 않고 시스템에서이를 덤프합니다 (대기열 없음/대기 없음/순차 작업 없음).
또 다른 새로운 작업은 5 배 시간에 다시 실행되며 다른 작업이 실행되고 있지 않으면 해당 파일을 구문 분석하고 처리합니다.
을 하나의 도구에서 실행되는 작업간에 작업을 삭제한다고 말합니까? 왜 버려야합니까? 당신은 다른 작업을하고 있습니까? 5 분 간격으로 동일한 작업을 실행하는 경우 첫 번째 작업이 완료된 후 5 분 동안 작업이 실행되도록 보장하는 것이 좋습니다. –