새 파일이나 수정된 파일이 나타나기 전에 (임의로?) 지연이 발생하는 두 가지 상황을 보았습니다.
첫 번째 사례는 내 Rails 개발 환경입니다. vim에서 코드 파일을 수정하고 저장한 다음 웹 브라우저로 전환하고 페이지를 다시 로드합니다. Rails 서버는 변경된 사항을 감지하고 다시 로드합니다. 수정된 파일이 몇 초 동안 사라지고 Rails가 파일 누락에 대해 불평하는 경우를 제외하면 모든 것이 정상입니다.
두 번째 사례는 프로덕션 환경의 Sphinx 인덱서입니다. 증분 색인 설정이 있습니다. Sphinx 색인 작성기는 새 색인 파일을 생성하고 이를 기존 색인 파일에 병합합니다. 인덱서가 새 파일을 읽으려고 할 때마다(약 10분에 한 번씩) 새 파일 중 하나가 존재하지 않는다는 점을 제외하면 모든 것이 잘 작동합니다. 즉, 방금 작성한 것과 동일한 프로세스이며 다음과 같은 사실을 알고 있습니다. 저기에있어 .
두 경우 모두 몇 초 후에 파일이 나타나 아무 일도 일어나지 않은 것처럼 우쭐해 보입니다.
누구든지 이를 설명하거나 해결책을 찾을 수 있는 위치에 대한 단서를 제공할 수 있습니까?
개발 환경은 CentOS 6.3을 실행 중이고 제가 사용하는 파일 시스템은 로컬 ext3입니다. 프로덕션 환경은 Debian 7(wheezy)이고 Sphinx 색인 파일은 로컬 ext4에 있습니다.
답변1
이것은 Vim으로 인해 발생한 문제입니다. Vim은 새 파일을 쓰기 전에 삭제합니다. 이는 내가 사용하는 Emacs(및 WingIDE 편집기)와는 극명한 대조를 이룹니다.
나는 새 코드를 테스트할 때 실행하는 작은 Python 유틸리티를 사용하여 이 유틸리티를 발견했습니다. 타임스탬프를 기반으로 파일 목록이 변경되었는지 확인하기 위해 루프를 돌린 다음 일부 명령을 실행합니다(보통 첫 번째 .py 파일을 확인). 테스트 실행을 위해 Python에 대한 인수로 사용됨)
Emacs나 Wingide를 사용할 때는 문제가 없지만 vim을 사용하여 감시 중인 파일 중 하나를 변경하면 확인하려는 타임스탬프 파일이 존재하지 않기 때문에 Python 유틸리티가 종료됩니다.