배경 : 내가 작업하고있는 서버에서 프로세스를 테스트해야합니다. 내가하고있는 일은 클라이언트쪽에 많은 파일을 만들고 서버에 업로드하는 것이다. 서버는 새 파일 (입력 dir에서 파일 이름은 고유합니다)을 모니터링하고 일단 처리 된 새 파일이 있으면 일단 완료되면 동일한 이름이지만 확장자가 다른 응답 파일을 작성하여 출력 디렉토리에 작성합니다. 처리가 실패하면 들어오는 파일을 오류 dir에 넣습니다. 문제Java - 목록에서 일치하는 쌍을 찾습니다.
10:48:47 /path/to/in/ CREATE ABCD.infile1
10:48:55 /path/to/out/ CREATE ABCD.outfile1
또는
10:49:11 /path/to/in/ CREATE ASDF.infile1
10:49:19 /path/to/err/ CREATE ASDF.infile1
을 : 나는 모든 결과 목록을 구문 분석 할 필요가 이 (자바에서 구현하는 계획 나는 출력 서버의 변경 사항을 모니터링 할 inotifywait을 사용하고 있습니다) 그래서 나는 infile을 가져 와서 같은 파일 이름 (ERR 또는 OUT에서 찾을 수 있음)과 비교하고 취해진 시간을 계산하고 성공 여부를 표시합니다. 나는 데 아이디어 (교체 아웃,에, ERR) 3 개 목록을 만들 수 있으며, 구문 분석 (의사 코드에서) 같은
inList
outList
errList
for item : inList
if outlist.contains(item) parse;
else if errList.contains(item) parse;
else error;
질문하십시오 : 이 효율적인가요를? 아니면이 상황에 접근하는 더 좋은 방법이 있습니까? 어쨌든, 여러분은 그것이 단 한 번만 실행하는 코드라고 생각할 것입니다. 왜 투쟁입니까?하지만 정말로 이것을 올바르게 처리하는 방법을 알고 싶습니다.