org.apache.commons.vfs2.impl.DefaultFileMonitor
http://docs.oracle.com/javase/tutorial/essential/io/notification.html
http://www.java2s.com/Code/Java/File-Input-Output/MonitoringaFileforchanges.htm
http://howtodoinjava.com/2012/10/10/auto-reload-of-configuration-when-any-change-happen/
http://tunatore.wordpress.com/2011/05/13/how-to-detect-file-change-using-java-filechangeevent/
http://www.javaspecialists.eu/archive/Issue095.html <===
서비스를 운영하는 중에 설정을 변경하여 실시간으로 반영해야 하는 요건이 종종 발생한다.
이 때 처리할 수 있는 방법은 크게 2가지가 있다.
하나는 파일 변경에 대한 OS레벨의 시스템 이벤트를 Triggering할 수 있도록 프로그래밍하는 것이고, 다른 하나는 일정 주기로 해당 File을 Polling하여 변경 여부를 판별하여 설정에 반영하는 것이다.
시스템에서 파일 변경 이벤트를 받을 수 있다면, 첫번째 방법이 가장 확실하다.
하지만, Java 환경에서는 Timer나 Task를 이용하여 데몬으로 동작하는 프로그램을 작성하여 파일 변경을 감시하거나, 일정 주기로 Thread에서 파일 변경을 감시하는 것이 대부분이다.
대표적으로 Apache의 VFS나 commons-configuration이 이에 해당한다.
OS별로 파일 변경에 대한 시스템 이벤트를 Triggering할 수 있는 방안은 없을까?
다음 버전의 JDK에는 반영이 되었으면 좋겠다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/594