java - 测量 Spring 批步骤执行时间

标签 java spring-batch

测量 Spring Batch 中步骤执行时间的正确方法是什么?

这是步骤示例:

@Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .<POJO, POJO> chunk(10)
                .reader(pojoReader())
                .processor(pojoProcessor())
                .build();
    }

我在 ItemWriter 和 IemReader 上的步骤之前使用了一些示例

public class xxxxxItemReader implements xxxxItemReader <XXXX>{

    private Logger log = LoggerFactory.getLogger(this.getClass());

    @Override
    public void beforeJob(JobExecution jobExecution) {
        //
        // Can Log || do some business code
        //
        log.info("Intercepting Job Excution - Before Job!");
    }

    @Override
    public void afterJob(JobExecution jobExecution) {
        //
        // Can Log || do some Business code
        //
        log.info("Intercepting Job Excution - After Job!");
    }

}

在这种情况下,我应该使用 ItemWriter 和 itemReader 进行前一步和后一步,最后将它们放在一起(添加)以获得霍尔步骤执行时间?这是最好的方法吗?

最佳答案

您可以在作业上使用JobExecutionListener:

@Bean
public Job helloJob() {
    return jobBuilderFactory.get("HelloJob")
        ...
        .listener(new JobExecutionListener() 
        {

            @Override
            public void beforeJob(JobExecution jobExecution) 
            {
                // do nothing
            }

            @Override
            public void afterJob(JobExecution jobExecution) 
            {
                // get job's start time
                Date start = jobExecution.getCreateTime();

                //  get job's end time
                Date end = jobExecution.getEndTime();

                // get diff between end time and start time
                long diff = end.getTime() - start.getTime();

                // log diff time
                log.info(TimeUnit.SECONDS.convert(diff, TimeUnit.MILLISECONDS));
            }
        })
        ...
        .build();
}

关于java - 测量 Spring 批步骤执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346291/

相关文章:

Java 字符串分割字符串 "},"

java - mongodb + mockito 不能一起工作?

java - 使用 Spring Batch 汇总数据

Spring 批处理 : How to setup a FlatFileItemReader to read a json file?

spring - 在 Spring Batch 中重复步骤 x 次

spring - Spring 批的优点

java - 如何编写比较多个参数的比较器?

java - Eclipse 看到库但无法导入它

java - 为什么在 Eclipse 中路径需要两个斜杠 (\\)?

java - Spring批处理元数据表的问题