Spring批量生成报告

时间:2015-05-29 19:21:45

标签: spring-batch

我想在批量执行结束时生成摘要报告。

例如:我有一个接收accountId的ItemProcessor。

for every accountId: get MarketplaceId's for every marketplaceId: call real time availability

在批处理执行结束时,我需要在显示

的文件中提供一个很好的摘要
  • 处理的帐户数
  • 每个accoutId的市场ID数
  • 未能获得实时可用性的marketplaceIds数量
  • 处理一个accountId的时间

问题

  1. 我在哪里坚持那些中间结果,即。每次迭代的不同计数
  2. 我如何将这些计数带到下一步,这只是一个摘要文件编写者
  3. 如果您提供任何指示,那将非常棒。

    感谢。

1 个答案:

答案 0 :(得分:0)

编写一个tasklet来准备一个漂亮的summery并将该tasklet作为Job

的最后一步
     <step id="summeryFile" >
        <tasklet ref="summaryFilePreparationTasklet"/>
    </step>

和Bean配置

<bean id="summaryFilePreparationTasklet" class="com.baji.batch.SummaryPreparationFile">

和类文件是

 package com.baji.batch;

    import org.springframework.batch.core.StepContribution;
    import org.springframework.batch.core.scope.context.ChunkContext;
    import org.springframework.batch.core.step.tasklet.Tasklet;
    import org.springframework.batch.repeat.RepeatStatus;

    /**
     * @Author
     * Bhaji Shaik
     * May 30, 2015
     */
    public class SummaryPreparationFile implements Tasklet {

        @Autowired
private Holder holder;
        @Override
        public RepeatStatus execute(StepContribution arg0, ChunkContext chunkContext) throws Exception {
                    holder.getResults1();       
            //Write your own code to Prepare a neat summary preparation File
            return null;
        }

    }

持有人等级

 import org.springframework.stereotype.Component;

    @Component
    public class Holder {
        private List<Integer> results1;
        private List<Integer> results2;

         //Setter and getter methods
    }