2013-05-12 4 views
1

Spring 배치 작업에서는 대상 파일 (FlatFileItemWriter 사용)에 항목을 쓰고 입력 레코드 "프로세스 표시기"필드를 "처리됨"/ "실패"(JdbcBatchItemWriter 사용)으로 업데이트하고 있습니다. 이것이 "상품 거래"에서 일어나는 가장 좋은 방법은 무엇입니까? 파일하고 JdbcBatchItemWriter는 "프로세스 표시" 를 업데이트 ItemWriteListener 방법 "afterWrite"와 "onWriteError"을 사용하여 "프로세스 표시" 스프링 배치 프로세스 표시기 패턴

  • 를 업데이트 쓰기 위해 FlatFileItemWriter CompositeItemWriter (대표 사용

  • 답변

    2

    ChunkListener # afterChunk를 사용하여 이와 같은 플래그를 업데이트하는 것이 좋습니다. 이렇게하면 제안 된 다른 두 옵션과 관련된 재시도 등의 로직과 분리 될 수 있습니다.

    +0

    그러나 'ChunkListener'에서 처리 된 항목을 어떻게 식별합니까? 'afterChunk' 메쏘드는 매개 변수가 없으므로'ItemWriteListener'와 같은 항목을 주입하지 않습니다. – timomeinen

    +0

    사실, 일반적으로 ChunkListener # beforeChunk()를 사용하여 처리 할 항목에 플래그를 지정하면됩니다. 그런 다음 ChunkListener # afterChunk()는 청크가 완료되면 처리 된 것으로 플래그를 설정합니다. –

    +0

    죄송합니다. 이해가 안갑니다. ChunkListener # beforeChunk()는 매개 변수가 없습니다. ChunkListener 내에서 처리 할 항목을 어떻게 식별 할 수 있습니까? 청크는 여러 항목을 가질 수 있지만 리스너에 주입되지는 않습니다. – timomeinen