2016-06-16 5 views
0

내 배치에서 커밋 간격을 프로그래밍 방식으로 (Java 클래스가 아니라 xml에서) 설정하는 방법을 알아야합니다. 내 프로그램은 다음과 같습니다 :SPRING BATCH : 동적 커밋 간격

// loop on lines information from flat file 
    // treatement on line 
    // commit 

Java 클래스에서 커밋을 수행 할 수있는 라이브러리에 메서드가 있습니까?

당신의 도움이

답변

1

당신은 사용자 정의 CompletionPolicy을 정의해야 주셔서 감사합니다. 그런 다음 청크 단계에서 chunk-completion-policy으로 설정합니다.

old forum에는 예제 구현이 있습니다.

+0

답장을 보내 주셔서 감사합니다. Lokking은 예전 포럼 링크의 예제에서 Scheduling 클래스와 invokePeek() 메소드의 유용성을 이해하지 못합니다. 구현이 있으면 좋을 것입니다. –

+0

'peek()'을 사용하여 처리중인 항목을 한 줄에있는 다음 항목과 비교하고 동일한 내용으로 처리해야 하는지를 결정합니다. 다른 청크에 있어야한다면'isComplete()'는'true'를 리턴 할 것입니다. –

+0

이 예에서는 reader와 completionPolicy 구현이 같은 클래스에 있습니다. 필자의 경우, 라인을 읽어야하고, DataBase에 쓰고, 라인의 특별한 데이터 (이 예제에서는 날짜)가 바뀔 때마다 커밋을해야한다. 독자와 완료 정책을 분리해야합니까? 내 경우에 도움이 될만한 다른 예가 있습니까? 미리 감사드립니다 –

관련 문제