Gewinde habe ich eine Feder Batch Chunk Basis Job mit (Custom Reader, individuell gestalteten Prozessor, individuell gestalteter Writer Jeden Thread dieser Reihenfolge folgen soll). Wenn ich 10 Threads starte, sollten sie parallel laufen und ihre eigene Reihenfolge von Lesen, Verarbeiten und Schreiben in der Reihenfolge ausführen.Spring Batch: Wie chunk Verarbeitung zu machen, wie Multi
Thread 1 -> Um: Lesen, Prozess, schreiben
Thread 2 -> Um: Lesen, Prozess, schreibt ... etc
Wie dieses Verhalten zu implementieren. Zur Zeit habe ich Code in Single-Thread-Modell wie folgt arbeiten. (Ich denke. Nicht sicher). Ich möchte Commit-Intervall im Batch: Chunk als '1' nur (Weil ich Datei Zeile für Zeile lesen muss).
<!-- Reader bean for our simple Text file -->
<bean id="productReader" class="com.mycompany.batching.reader.productItemReader"
scope="step">
<property name="userId" value="#{jobParameters['userId']}" />
<property name="dataId" value="#{jobParameters['dataId']}" />
</bean>
<!-- Processor for the data red from text file -->
<bean id="productProcessor" class="com.mycompany.batching.processor.productItemProcessor">
</bean>
<!-- Persisting data to database -->
<bean id="productWriter" class="com.mycompany.batching.writer.productItemWriter">
</bean>
<batch:job id="simpleProductImportJob" xmlns="http://www.springframework.org/schema/batch">
<batch:step id="importFileStep">
<batch:tasklet>
<batch:chunk reader="productReader" processor="productProcessor"
writer="productWriter" commit-interval="1" />
</batch:tasklet>
</batch:step>
</batch:job>
Wie macht man dieses Multi-Thread.?
Sie wahrscheinlich einen partitionierten Schritt wollen: http://docs.spring.io/spring-batch/reference/html/scalability.html –