Review comments
This commit is contained in:
parent
113e3d8ab3
commit
dfcc982e8f
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user