Ho impostato correttamente un progetto di Spring Batch. Mi piacerebbe davvero sapere se è possibile renderlo multi-threaded al "livello di primavera".Come impostare il multi-threading in Spring Batch?
L'idea di base di ciò che voglio è creare un elenco di attività o di attività e lasciarli catturare e lavorare su thread indipendenti, idealmente da un pool limitato a un numero di thread.
È possibile? Se é cosi, come? Qualcuno potrebbe mostrarmi come guidarmi a quel punto da dove sono attualmente?
Il semplice progetto che ho è da questo tutorial here. Fondamentalmente ha diversi compiti che stampano un messaggio sullo schermo.
Ecco il mio file simpleJob.xml corrente, che contiene i dettagli del lavoro:
<import resource="applicationContext.xml"/>
<bean id="hello" class="helloworld.PrintTasklet">
<property name="message" value="Hello"/>
</bean>
<bean id="space" class="helloworld.PrintTasklet">
<property name="message" value=" "/>
</bean>
<bean id="world" class="helloworld.PrintTasklet">
<property name="message" value="World!\n"/>
</bean>
<bean id="taskletStep" class="org.springframework.batch.core.step.tasklet.TaskletStep" >
<property name="jobRepository" ref="jobRepository"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="simpleJob" class="org.springframework.batch.core.job.SimpleJob">
<property name="name" value="simpleJob" />
<property name="steps">
<list>
<bean parent="taskletStep">
<property name="tasklet" ref="hello"/>
</bean>
<bean parent="taskletStep">
<property name="tasklet" ref="space"/>
</bean>
<bean parent="taskletStep">
<property name="tasklet" ref="world"/>
</bean>
</list>
</property>
<property name="jobRepository" ref="jobRepository"/>
</bean>
mio appContext contiene il fagiolo repository lavoro (SimpleJobRepository
), gestore delle transazioni (ResourceLessTransactionManager
) e lanciatore di lavoro (SimpleJobLauncher
). Posso anche fornire questo codice se lo desideri, ma non volevo impantanare questo post con tonnellate di XML.
Grazie mille per qualsiasi aiuto!