首页 > 解决方案 > Spring Batch - 如何将线程和网格号输出到控制台或日志

问题描述

在我的 Spring Batch 配置中,我有这个:

@Bean
public TaskExecutor taskExecutor() {
    SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor("myJob");
    asyncTaskExecutor.setConcurrencyLimit(15);
    asyncTaskExecutor.setThreadNamePrefix("SrcToDest");
    return taskExecutor;
}

而且我还有一个“主步骤”,我正在设置网格大小,如下所示:

@Bean
@Qualifier("masterStep")
public Step masterStep() {
    return stepBuilderFactory.get("masterStep").partitioner("step1", partitioner()).step(step1())
            .taskExecutor(threadpooltaskExecutor()).taskExecutor(taskExecutor())
            .gridSize(10).build();
}

就我而言,当“myjob”以“COMPLETED”状态结束时,我最后只看到“Thread-x”。

问题

  1. 为了监控如何在整个执行过程中将线程号打印到控制台/日志?即“myjob”从头到尾

  2. 有什么方法可以让输出到控制台/日志以查看网格操作吗?

我在 Spring Guides 中找不到任何示例或任何地方。

标签: springspring-batch

解决方案


仍在寻找如何向控制台显示网格数字

这取决于您的分区程序。您可以在分区程序中添加日志语句并显示网格大小。所以在分区的时候,它就在你身边。

在分区处理时,Spring Batch 将在每个工作步骤执行的调试级别显示一条日志语句。


推荐阅读