기본적으로 새로운 Java 7 WatchService를 사용하여 디렉토리를 모니터링하고 있습니다.자바 7 WatchService : 핸들러에서 이벤트 소스를 변경할 때 무한 루프의 이벤트를 피함
나는 디렉토리에서 발급 한 모든 IO 이벤트를 수신하는 일련의 처리기를 가지고 있습니다.
핸들러가 어떤 이유로 든 IO 이벤트 (== 파일)의 이유를 변경해야하는 경우가 있습니다. 예를 들어 누군가 모니터 된 폴더에 파일을 넣는 경우, 핸들러 중 하나가 확장자를 변경하거나 파일 이름에 무엇인가를 추가 할 수 있습니다.
이러한 작업은 물론 새 IO 이벤트를 트리거하고 앞서 언급 한 처리기가이를 가져옵니다. 그런 다음 다시 한 번 변경합니다. 이것은 분명히 무한 루프로 연결됩니다 ...
Java는 이러한 상황을 처리 할 수있는 방법을 제공합니까? 그렇지 않다면 어떻게 처리할까요?
기본적으로 해당 이벤트 처리기의 동작으로 인해 이벤트가 발생하지 않은 경우에만 이벤트 처리기를 실행하고 싶습니다.
업데이트 : 솔루션에 관해서는 차라리 메인 이벤트 라우터의 코드에서 변경 사항을 작성합니다. 쓰는 모든 처리기에서이 점에 대해 걱정하지 않습니다 ("처리기는 변경하지 않습니다. 전에").
이전 작업을 기반으로 처리기에서 무시할 이벤트를 추적해야한다고 생각합니다. 가장 쉬운 방법은 Mark Elliot의 대답이 가능한지 여부입니다. – jontro