spring-batch Job2Configuration 源码
spring-batch Job2Configuration 代码
文件路径:/spring-batch-samples/src/main/java/org/springframework/batch/sample/metrics/Job2Configuration.java
package org.springframework.batch.sample.metrics;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepScope;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.support.ListItemReader;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Job2Configuration {
private Random random;
private JobBuilderFactory jobs;
private StepBuilderFactory steps;
public Job2Configuration(JobBuilderFactory jobs, StepBuilderFactory steps) {
this.jobs = jobs;
this.steps = steps;
this.random = new Random();
}
@Bean
public Job job2() {
return jobs.get("job2").start(step()).build();
}
@Bean
public Step step() {
return steps.get("step1").<Integer, Integer>chunk(3).reader(itemReader()).writer(itemWriter()).build();
}
@Bean
@StepScope
public ListItemReader<Integer> itemReader() {
List<Integer> items = new LinkedList<>();
// read a random number of items in each run
for (int i = 0; i < random.nextInt(100); i++) {
items.add(i);
}
return new ListItemReader<>(items);
}
@Bean
public ItemWriter<Integer> itemWriter() {
return items -> {
for (Integer item : items) {
int nextInt = random.nextInt(1000);
Thread.sleep(nextInt);
// simulate write failure
if (nextInt % 57 == 0) {
throw new Exception("Boom!");
}
System.out.println("item = " + item);
}
};
}
}
相关信息
相关文章
spring-batch BatchMetricsApplication 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦