在Spring Batch中,我试图读取一个CSV文件,并希望将每一行分配给一个单独的线程并进行处理.我试图通过使用TaskExecutor来实现它,但是所有线程正在发生的事情是一次选择同一行.我也尝试使用Partioner实现这个概念,也有同样的事情发生.请参阅下面的我的配置Xml.
步骤说明
<step id="Step2">
<tasklet task-executor="taskExecutor">
<chunk reader="reader" processor="processor" writer="writer" commit-interval="1" skip-limit="1">
</chunk>
</tasklet>
</step>
<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" value="file:cvs/user.csv" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<!-- split it -->
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names" value="userid,customerId,ssoId,flag1,flag2" />
</bean>
</property>
<property name="fieldSetMapper">
<!-- map to an object -->
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="user" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="taskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor">
<property name="concurrencyLimit" value="4"/>
Run Code Online (Sandbox Code Playgroud)
我尝试过不同类型的任务执行器,但它们都以相同的方式运行.如何将每行分配给单独的线程?