@Bean
public Job orderJob() throws Exception {
return jobBuilderFactory.get("orderJob").incrementer(new RunIdIncrementer()).listener(listener())
.flow(orderStep()).end().build();
}
@Bean
public Step orderStep() throws Exception {
return stepBuilderFactory.get("orderStep").<OrderCollection, Order>chunk(1000)
.reader(orderReader()).processor(orderProcessor()).writer(orderWriter())
.allowStartIfComplete(true).build();
}
@Bean
@StepScope
public MongoItemReader<OrderCollection> orderReader() throws Exception {
MongoItemReader<OrderCollection> reader = new MongoItemReader<>();
reader.setTemplate(mongoTemplate);
reader.setCollection("order");
Map<String, Sort.Direction> sort = new HashMap<>();
sort.put("_id", Sort.Direction.ASC);
reader.setSort(sort);
reader.setTargetType(OrderCollection.class);
reader.setQuery("{$or: [ {flag:false}, {flag:null} ]}");
return reader;
}
@Bean
@StepScope
public OrderProcessor orderProcessor() {
return new OrderProcessor();
}
@Bean
@StepScope
public ItemWriter<Order> orderWriter() {
return new OrderWriter();
}
Run Code Online (Sandbox Code Playgroud)
Order Collection …