여러가지 병렬처리를 제공
멀티 쓰레드 Step
TaskExecutor
throttleLimit()
로 인한 쓰레드 제한ItemReader
가 thread safe하지 않을 경우,SynchronizedItemStreamReader
을 사용하거나 synchronizing delegator를 만든다. (writer는 없네??)
병렬 Step
FlowBuilder
를 이용한 구성(기본값:SyncTaskExecutor
)- 예시
Remote Chunking
- 멀티 프로세싱 방법
- 자세한 내용은 후반에 있는 듯
Partitioning
- Step 실행을 분할하고 원격으로 실행하기위한 SPI 제공
PartitionStep
, 전략 인터페이스(PartitionHandler
,StepExecutionSplitter
)
gridSize()
:throttleLimit()
과 비슷- 문서 - partitioning
PartitionHandler
- 원격이나 그리드 환경의 구조를 알고 있는 컴포넌트
- 원격
Step
인스턴스에 DTO 같은 특정 형식으로StepExecution
을 보낼 수 있음 - 다양한 구현체(simple RMI remoting, EJB remoting, custom web service, JMS, Java Spaces, shared memory grids (like Terracotta or Coherence))
- 로컬에서 멀티 쓰레드로도 활용 가능(
TaskExecutorPartitionHandler
)
Partitioner
SimplePartitioner