小编Hen*_*oJR的帖子

Spring Batch中的多线程

我有一个Spring Batch应用程序.此应用程序的步骤配置为多线程.

<bean id="simpleTaskExecutor"
    class="org.springframework.core.task.SimpleAsyncTaskExecutor">
    <property name="concurrencyLimit" value="10"/>
</bean>

<batch:job id="rabbitReadJob" job-repository="jobRepository">
    <batch:step id="step1">
        <batch:tasklet task-executor="simpleTaskExecutor" throttle-limit="10">
            <batch:chunk    
                    reader="CarItemReader"
                    processor="CarItemProcessor"
                    writer="CarItemWriter"
                    commit-interval="2">
            </batch:chunk>
        </batch:tasklet>
    </batch:step>
</batch:job>
Run Code Online (Sandbox Code Playgroud)

提交间隔为2,然后项目读取器的线程读取2个itens并发送到进程.项目阅读器的其他线程读取其他2个itens并发送到进程.两个线程的Itens同时执行该进程,但我们需要等待第一个项目完成以执行第二个.为了方便起见,我将发布执行日志.

INFO  06-01 12:44:53,344 - >>>>>>>>>> start processor id 1
INFO  06-01 12:44:53,355 - >>>>>>>>>> start processor id 3
INFO  06-01 12:44:53,362 - >>>>>>>>>> start processor id 5
INFO  06-01 12:44:53,456 - >>>>>>>>>> finish processor id 5
INFO  06-01 12:44:53,456 - >>>>>>>>>> finish processor id 3
INFO  06-01 12:44:53,456 - >>>>>>>>>> start processor id …
Run Code Online (Sandbox Code Playgroud)

java multithreading spring-batch

1
推荐指数
1
解决办法
4006
查看次数

标签 统计

java ×1

multithreading ×1

spring-batch ×1