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
Post a Comment