How to aggregate skipped/ignored/null Items and expose them in the end of the job using Spring batch -


in spring batch have tasklet , step (reader,processor,writer) processing in chunks.

the tasklet downloads file. step processing lines in file.

i added validation logic processor:

 @override     public myobject process(myojbect item) throws exception { {      ...        boolean result=validateobject(item);        if (result)        {           return item;         }        else        {           return null;         }  } 

my writer ignore nulls:

 public void write(list<? extends myobject> items) throws exception {         (myobjectitem : items) {             try {                 if (item != null) {                     ....                 }             } catch (exception e) {                 logger.error("error writing item=" + item.tostring(), e);             }         }     } 

the thing want calculate number of ignored/null items , expose outside in end of job.

any ideas how it? going have many jobs in parallel multi-thread must considered.

thank you, ray

this how processor defined:

 @bean     public step processsnidfilestep() {         return stepbuilderfactory.get("processsnidfilestep")                 .<myobject, myobject>chunk(numofprocessingchunksperfile)                 .reader(reader(overridden_by_expression,overridden_by_expression))                 .processor(asyncitemprocessor())                 .writer(asyncitemwriter())                 .listener(logprocesslistener())                 .throttlelimit(20)                 .build();      }    @bean     public asyncitemprocessor asyncitemprocessor() {         asyncitemprocessor<myobject, myobject> asyncitemprocessor = new asyncitemprocessor();         asyncitemprocessor.setdelegate(processor(overridden_by_expression, overridden_by_expression, overridden_by_expression,                 overridden_by_expression, overridden_by_expression, overridden_by_expression, overridden_by_expression, overridden_by_expression,0));         asyncitemprocessor.settaskexecutor(infrastructureconfigurationconfig.taskprocessingexecutor());         return asyncitemprocessor;      } 


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -