I'm using spring batch composite item writer with four writers. To increase the performance I added task executor. In case on any exception the Skip count is not increasing.
public class ParallelCompositeWriter extends CompositeItemWriter<Object> {
@Setter
private List<ItemWriter<? super Object>> delegates;
@Setter
private TaskExecutor taskExecutor;
@Override
public void write(final List<? extends Object> item) throws Exception {
for (final ItemWriter<? super Object> writer : delegates) {
taskExecutor.execute(new Runnable() {
@Override
public void run() {
try {
writer.write(item);
} catch (Throwable t) {
rethrow(t);
}
}
private void rethrow(Throwable t) {
throw new IllegalStateException(t);
}
});
}
}
@Override
public void setDelegates(List<ItemWriter<? super Object>> delegates) {
this.delegates = delegates;
super.setDelegates(delegates);
}
}
Thank you.