Review comments

This commit is contained in:
Shubhra Srivastava 2020-02-11 07:24:45 +05:30 committed by GitHub
parent 113e3d8ab3
commit dfcc982e8f

View File

@ -32,6 +32,9 @@ import java.text.ParseException;
@Configuration @Configuration
@EnableBatchProcessing @EnableBatchProcessing
public class SpringBatchRetryConfig { public class SpringBatchRetryConfig {
private static final String[] tokens = { "username", "userid", "transactiondate", "amount" };
@Autowired @Autowired
private JobBuilderFactory jobBuilderFactory; private JobBuilderFactory jobBuilderFactory;
@ -45,14 +48,13 @@ public class SpringBatchRetryConfig {
private Resource outputXml; private Resource outputXml;
public ItemReader<Transaction> itemReader(Resource inputData) throws UnexpectedInputException, ParseException { public ItemReader<Transaction> itemReader(Resource inputData) throws UnexpectedInputException, ParseException {
FlatFileItemReader<Transaction> reader = new FlatFileItemReader<>();
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(); DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
String[] tokens = { "username", "userid", "transactiondate", "amount" };
tokenizer.setNames(tokens); tokenizer.setNames(tokens);
reader.setResource(inputData);
DefaultLineMapper<Transaction> lineMapper = new DefaultLineMapper<>(); DefaultLineMapper<Transaction> lineMapper = new DefaultLineMapper<>();
lineMapper.setLineTokenizer(tokenizer); lineMapper.setLineTokenizer(tokenizer);
lineMapper.setFieldSetMapper(new RecordFieldSetMapper()); lineMapper.setFieldSetMapper(new RecordFieldSetMapper());
FlatFileItemReader<Transaction> reader = new FlatFileItemReader<>();
reader.setResource(inputData);
reader.setLinesToSkip(1); reader.setLinesToSkip(1);
reader.setLineMapper(lineMapper); reader.setLineMapper(lineMapper);
return reader; return reader;
@ -80,23 +82,25 @@ public class SpringBatchRetryConfig {
} }
@Bean @Bean
public Step retryStep( public Step retryStep(@Qualifier("retryItemProcessor") ItemProcessor<Transaction, Transaction> processor
@Qualifier("retryItemProcessor") , ItemWriter<Transaction> writer) throws ParseException {
ItemProcessor<Transaction, Transaction> processor, ItemWriter<Transaction> writer) throws ParseException { return stepBuilderFactory.get("retryStep")
return stepBuilderFactory.get("retryStep").<Transaction, Transaction>chunk(10).reader(itemReader(inputCsv)) .<Transaction, Transaction>chunk(10)
.processor(processor) .reader(itemReader(inputCsv))
.writer(writer) .processor(processor)
.faultTolerant() .writer(writer)
.retryLimit(3) .faultTolerant()
.retry(ConnectTimeoutException.class) .retryLimit(3)
.retry(DeadlockLoserDataAccessException.class) .retry(ConnectTimeoutException.class)
.build(); .retry(DeadlockLoserDataAccessException.class)
.build();
} }
@Bean(name = "retryBatchJob") @Bean(name = "retryBatchJob")
public Job retryJob( public Job retryJob(@Qualifier("retryStep") Step retryStep) {
@Qualifier("retryStep") return jobBuilderFactory
Step retryStep) { .get("retryBatchJob")
return jobBuilderFactory.get("retryBatchJob").start(retryStep).build(); .start(retryStep)
.build();
} }
} }