2011-08-04 13 views
3

병렬로 실행해야하는 2 개의 프로세스를 코딩하는 최선의 방법을 생각해보십시오. 다중 처리가 기본 모듈인지 확실하지 않습니다.Python 다중 처리 질문

dataCollector를 사용하여 많은 양의 데이터를 생성하고 있지만 dataCollector가 계속 실행되는 동안 dataChecker를 사용하여 주기적으로 데이터를 확인하고 싶습니다. 내 마음 속에는 두 가지 중요한 시간이 있습니다. 하나는 dataCollector가 파일을 덤프하는 시간이고 다른 하나는 dataChecker가 덤프 된 파일을 분석하기 시작할 시간이고 두 시간은 dataChecker가 완료되고 dataCollector를 다시 기다립니다.

누군가가 다중 처리 모듈을 사용하여 일반적인 개요를 제안 할 수 있습니까? 다른 모듈을 사용해야합니까? 감사합니다.

답변

2

왜 모든 모듈을 사용합니까? 동시에 시작할 수있는 두 개의 별도 프로세스를 사용하면 간단합니다. dataChecker는 디렉토리에있는 모든 파일을 나열하고, 카운트하고, 잠시 (몇 초 이상) 잠자기 상태가됩니다. 그런 다음 다시 시도하고 파일 수가 변경되면 새 파일을 열고 읽은 다음 처리합니다.

두 프로세스의 동기화는 전적으로 사서함을 통해 이루어지며 파일이있는 디렉터리로 구현됩니다. dataCollector가 새 메시지 작성을 시작할 때만 메시지가 수신됩니다.

+0

너무 복잡하게 들립니다. 왜 dataCollector를 dataChecker에 파이프하지 않고 검사 할 데이터가있을 때 stdout에 기록해야합니까? – Clueless

+1

나는 그것이 더 간단하다고 생각한다. 프로세스가 서로를 인식하도록하여 코드 복잡성을 추가하는 이유는 무엇입니까? 이 대답은 절대적으로 옳습니다. 검사기가 관심을 갖는 데이터 가용성이며 수집기의 상태는 아닙니다. 수집기는 검사기를 전혀 신경 쓰지 않습니다. – agf