2012-07-11 2 views
0

상위 레벨 요구 사항은 다음과 같습니다. 데이터를 읽어야하는 입력 테이블 (INPUT)이 있으며 유효성 검사를 위해 외부 서비스로 보내고 출력 테이블에서 유효성 검사 응답을 업데이트합니다. 다양한 샘플을 기반으로, 나는 이것을 구현했다.스프링 배치 전략

그러나 입력 테이블은 평면 구조입니다. 즉, 예 : 표에있는 학생의 시험 결과가 여러 개인 학생 표. 유효성 검사를 위해 보낼 때, 나는 학생의 모든 기록을 검색하고 검증을 위해 보내야합니다. 또 하나의 문제는 병렬 처리입니다. 외부 서비스를 사용하면 네트워크 지연이 발생하며 읽기, 처리 및 쓰기 또는 처리 및 작성을위한 병렬 처리가 필요합니다.

실현 가능한 독자, 작성자 및 프로세서에 대해 알고 싶습니다.

도와주세요.

답변

0

테이블에서 데이터를 읽을 수있는 리더를 만드는 것이 좋습니다. 생성 된 하나의 요소 (내 설명의 나머지 부분에 대해 E라고 함)는 유효성 검사 서비스로 보낼 수 있어야합니다.

그런 다음 이전 매개 변수 E가있는 프로세서를 작성하십시오. 유효성 검사 서비스를 호출합니다. 검증 결과는 프로세서 (O)의 출력입니다.

마지막으로 O를 매개 변수로 사용하고 최종 데이터를 데이터베이스에 쓰는 작성자를 작성하십시오.

병렬 처리는 ThreadPoolTaskExecutor을 사용하여 Spring 구성을 통해 수행됩니다. 중요한 부분은 리더, 프로세서 및 작성기를 스레드로부터 안전하게 작성하는 것입니다. 더 나은 공연을 위해

, 당신은 또한 매개 변수를 확인해야합니다 커밋 간격 (라이터)에, 당신은 최대 절전 모드, 그 배치 용량을 확인 사용하는 경우 (나는 보통 25의 일괄 삽입/업데이트를 수행하여 최상의 성능을 찾을 수 -30 요청).

관련 문제