파이썬 초보가 질문 드립니다.
일단 전 파이썬을 분석 용으로만, 즉 계산기로만 사용했기 때문에 어떤 환경을 만들거나 하는 것은 경험해보지 못했습니다.
제가 잘 모르기 때문에 지금 물어볼려고 하는 걸 인터넷에서 어떻게 찾아야 할지도 모르겠어서 글 남깁니다 .
일단 지금 제가 만들고자 하는 건 특정 디렉토리에 xml 파일이 만들어질 때마다 xml 파일을 파싱하여 필요 정보를 추출한 후 그 정보에서 분석을 하여 최종 보고서로 만드는 환경을 구축하는 것 입니다.
일단 특정 디렉토리를 계속 감시하는 건 찾아보니 watchdog으로 해결이 가능해 보였고, xml 파싱이나 보고서로 만드는 것은 어떻게든 해결이 가능할 것으로 생각하고 있습니다.
단지, watchdog으로 xml 파일이 생길 때마다 파일 내에서 정보를 추출하고, 그 정보를 활용하여 특정 Raw data를 분석하는데 일부 시간이 소요되게 됩니다.
이 때, 분석이 수행되는 시간에 watchdog으로 지켜보고 있는 디렉토리에 xml 파일이 생기면 그 파일은 skip이 될 거라고 생각이 되는데,
이와 같은 경우를 방지하기 위해서 디렉토리에 xm 파일이 생성되면 분석해라라는 신호를 던지고 분석이 끝나고 보고서가 만들어질 때까지 기다리는 것이 아닌 분석은 분석대로 돌아가면서 디렉토리를 검사하여 새로운 xml 파일이 생길 때 재차 분석해라라는 명령을 수행할 수 있는 방법을 물어보고자 글 남깁니다.
뭔가, 제가 잘 모르기 때문에 글에 두서가 없고 알아보기 힘든 점은 죄송합니다.
이를 어떻게 해결해야 할지 알려주시면 정말 감사합니다.
두서 없는 답변
세벌 https://sebuls.blogspot.kr/
일반적으로..
watchdog 을 별도로 만들기 보다 하나의 프로세스로 만듭니다.
물론 두개의 별도의 프로세스로 만들어도 문제가 되거나 하진 않겠죠
특정 디렉토리를 glob 이나 os 의 filelist 명령어 ( dir, ls ..) 를 filter 를 걸어서 일정 주기 단위로 새로운 파일이 생긴걸 감시하는거죠
그리고 처리된 파일은 별도의 list - .processlist - 등으로 관리합니다.
그래서 list 에 없는 파일만 작업후 list 파일에 append 하는거죠
또한 파일의 형태에 따라 다른 전략을 사용합니다.
파일이 timestamp 같은 유일한 키값이 있다면 timestamp 값만 관리할수 있고
파일이 일정시간이 지난뒤에 삭제 된다면 역시 관리되는 리스트 파일에서 삭제된 파일도 제거해서 해당 list 파일이 무한정 커지는걸 막아야 되겠죠
뭐 어쨌든 정답은 없습니다.
xml 파일의 네이밍이 어떤식으로 만들어지는지, 또는 파일이 생기는 시점에 처리되지 않도록 마지막 파일은 제외해야 하는지,
해당 디렉토리의 관리는 어떤식으로 되는지에 따라 전략을 수정해야 되겠죠
------------------------------------------------------------
ProgrammingHolic
댓글 달기