2015-05-29 119 views
0

我想在批處理執行結束時生成摘要報告。Spring批生成報告

例如:我有一個ItemProcessor接收accountId。 accoutId

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

    在批處理執行結束時,我需要提供顯示一個文件一個很好的總結,

    • 處理
    • marketplaceIds數爲每個帳戶數無法獲得實時可用性的市場ID數
    • 處理一個帳戶所花費的時間

    問題

    1. 我在哪裏堅持這些中間結果IE瀏覽器。在每次迭代
    2. 不同的計數我將如何得到這些計數下一步這只是一個概要文件寫入

    將是真正偉大的,如果你提供的任何指示。

    謝謝。

  • 回答

    0

    寫一個tasklet準備一個漂亮的夏日,並將該任務蕾作爲最後一步,在工作

     <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 
        } 
    
    +0

    我編輯了我的qn以添加一些信息。我的問題是,如何堅持這些計數,因爲它是在迭代處理器中每次迭代期間獲得的。例如:市場的實時可用性Id – kewlb

    +0

    我已更新答案。持有人類別是我們可以在任何春季豆類中自動裝配的單獨一類。它會保留結果,直到作業完成。並且使用@BeforeJob配置jobListener以在開始作業之前重置持有者bean中的值。 –