Spring Batch:Tasklet与Task-Executor

时间:2018-02-24 21:06:59

标签: concurrency spring-batch executor

我有理解某事的问题。我正在使用Spring-Batch,配置了一个带有任务执行程序的tasklet。在task-executor上很少配置工作正常,其他配置似乎没有执行tasklet。我不明白,为什么他们中很少有人让Spring-Batch工作,但其他人则让它远离工作。我希望有人能把光带入黑暗中。

有效的是,例如。

<task:executor id="myExecutor" pool-size="10" queue-capacity="1000000" />

<task:executor id="myExecutor" pool-size="10-50" queue-capacity="10000000" />

什么不起作用,看起来线程没有启动或中断或没有被接收:

<task:executor id="myExecutor" pool-size="5-10" queue-capacity="10000000" />

<task:executor id="myExecutor" pool-size="5-10" queue-capacity="10" />

<task:executor id="myExecutor" pool-size="5-50" queue-capacity="10000000" />

<task:executor id="myExecutor" pool-size="10-50" queue-capacity="1" />

这项工作是这样的:

<batch:job id="myJob">
    <batch:decision ... />
    <batch:step id="myStep">
        <batch:tasklet task-executor="myExecutor">
            <batch:chunk reader="..." processor="..." writer="..." commit-interval="1000" />
        </batch:tasklet>
    </batch:step>
</batch:job>

也许我遗漏了一些关于task:executor的基本知识。我怎么知道pool-sizequeue-capacity或类似的有什么好的价值。我想当配置在我的系统上正常工作时,我没有那种感觉可以保证它在任何地方都能正常工作。当工作开始时,背景会发生什么,但后来没有什么事情发生。我也可以在Windows性能任务管理器下看到,该工作不再做任何事情了。

感谢您的明确解释。

0 个答案:

没有答案