下面列出了org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource#org.springframework.batch.core.StepContribution 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
List<String> urlList = generatedFlinkManagerServerApi();
if (urlList.isEmpty()) {
return RepeatStatus.FINISHED;
}
Map<String, Boolean> jobExecuteStatus = createjobExecuteStatus();
for (String url : urlList) {
try {
ResponseEntity<Map> responseEntity = this.restTemplate.exchange(url, HttpMethod.GET, null, Map.class);
if (responseEntity.getStatusCode() != HttpStatus.OK) {
continue;
}
checkJobExecuteStatus(responseEntity, jobExecuteStatus);
} catch (Exception e) {
logger.error("fail call api to flink server.", e);
}
}
List<String> notExecuteJobList = new ArrayList<>(3);
for (Map.Entry<String, Boolean> entry : jobExecuteStatus.entrySet()) {
if (entry.getValue().equals(Boolean.FALSE)) {
notExecuteJobList.add(entry.getKey());
}
}
if (notExecuteJobList.size() > 0) {
String exceptionMessage = String.format("job fail : %s", notExecuteJobList);
throw new Exception(exceptionMessage);
}
return RepeatStatus.FINISHED;
}
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws IOException {
val status = super.execute(contribution, chunkContext);
val context = BatchContextHolder.getContext();
val errors = getErrors(context);
if (isNotEmpty(errors)) {
errors.forEach(e -> {
val sourceName = e.getSourceName();
val position = e.getPosition();
val errorMessage = e.getErrorMessage();
log.error("エラーがあります。ファイル名={}, 行数={}, エラーメッセージ={}", sourceName, position, errorMessage);
});
throw new ValidationException("取り込むファイルに不正な行が含まれています。");
}
return status;
}
@Bean
public Job job2() {
return jobBuilderFactory.get("job2")
.start(stepBuilderFactory.get("job2step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(
StepContribution contribution,
ChunkContext chunkContext)
throws Exception {
LOGGER
.info("This job is from Baeldung");
return RepeatStatus.FINISHED;
}
})
.build())
.build();
}
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
System.out.println(">> This was run in a Spring Batch app!");
return RepeatStatus.FINISHED;
}
}).build();
}
@Bean
public Step ourBatchStep() {
return stepBuilderFactory.get("stepPackPub1")
.tasklet(new Tasklet() {
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
return null;
}
})
.build();
}
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
propertyResolverConsumer.accept(new PropertySourcesPropertyResolver(propertySources(
stepExecution.getJobExecution().getJobConfigurationName(),
stepExecution.getJobParameters().toProperties(), environment)));
return FINISHED;
}
@Override
public RepeatStatus execute(StepContribution stepContribution,
ChunkContext chunkContext) {
try (Stream<Path> walk =
Files.walk(Paths.get(directory.getFile().getPath()))) {
walk.filter(Files::isRegularFile).map(Path::toFile)
.forEach(File::delete);
} catch (IOException e) {
LOGGER.error("error deleting files", e);
throw new UnexpectedJobExecutionException(
"unable to delete files");
}
return RepeatStatus.FINISHED;
}
private RepeatStatus execute(TaskLauncherTasklet taskLauncherTasklet, StepContribution contribution,
ChunkContext chunkContext) throws Exception{
RepeatStatus status = taskLauncherTasklet.execute(contribution, chunkContext);
if (!status.isContinuable()) {
throw new IllegalStateException("Expected continuable status for the first execution.");
}
return taskLauncherTasklet.execute(contribution, chunkContext);
}
private Step createTaskletStepWithListener(final String taskName,
StepExecutionListener stepExecutionListener) {
return this.steps.get(taskName)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
return RepeatStatus.FINISHED;
}
})
.transactionAttribute(getTransactionAttribute())
.listener(stepExecutionListener)
.build();
}
private Step createTaskletStep(final String taskName) {
return this.steps.get(taskName)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
return RepeatStatus.FINISHED;
}
})
.transactionAttribute(getTransactionAttribute())
.build();
}
@Override
final public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
this.stepContribution = stepContribution;
this.chunkContext = chunkContext;
// 画面传入参数取得
Map<String, Object> jobParameters = chunkContext.getStepContext().getJobParameters();
this.doExec(jobParameters);
return RepeatStatus.FINISHED;
}
private Tasklet nextBizDateTasklet(){
return new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
//入参[email protected]ef3fc[readCount=0,writeCount=0,filterCount=0,parentSkipCount=0,readSkipCount=0,writeSkipCount=0,processSkipCount=0,exitStatus=exitCode=EXECUTING;exitDescription=],chunkCo[email protected]2313a648[stepContext=SynchronizedAttributeAccessor: [], stepExecutionContext={batch.taskletType=com.jadyer.seed.controller.batch.javaconfig.StepService0005$1, batch.stepType=org.springframework.batch.core.step.tasklet.TaskletStep}, jobExecutionContext={}, jobParameters={time=1536145118798},complete=false,attributes={}],chunkContext.getStepC[email protected]3441dec5[stepExecution=StepExecution: id=23, version=1, name=step0005, status=STARTED, exitStatus=EXECUTING, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=0, rollbackCount=0, exitDescription=,callbacks={},propertyContext=<null>,support=org.sprin[email protected]0]
LogUtil.getLogger().info("入参contribution={},chunkContext={},chunkContext.getStepContext={}", ReflectionToStringBuilder.toString(contribution), ReflectionToStringBuilder.toString(chunkContext), ReflectionToStringBuilder.toString(chunkContext.getStepContext()));
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return RepeatStatus.FINISHED;
}
};
}
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
File dataFile = new File("D:\\data\\seedboot-batch-result.txt");
for(Person obj : personRepository.findAll()){
StringBuilder sb = new StringBuilder();
sb.append(obj.getAge()).append("|").append(obj.getRealName()).append("\n");
FileUtils.writeStringToFile(dataFile, sb.toString(), StandardCharsets.UTF_8, true);
}
return RepeatStatus.FINISHED;
}
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
return null;
}
})
.build();
}
private RepeatStatus execute(TaskLauncherTasklet taskLauncherTasklet, StepContribution contribution,
ChunkContext chunkContext) throws Exception{
RepeatStatus status = taskLauncherTasklet.execute(contribution, chunkContext);
if (!status.isContinuable()) {
throw new IllegalStateException("Expected continuable status for the first execution.");
}
return taskLauncherTasklet.execute(contribution, chunkContext);
}
private Step createTaskletStepWithListener(final String taskName,
StepExecutionListener stepExecutionListener) {
return this.steps.get(taskName)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
return RepeatStatus.FINISHED;
}
})
.transactionAttribute(getTransactionAttribute())
.listener(stepExecutionListener)
.build();
}
private Step createTaskletStep(final String taskName) {
return this.steps.get(taskName)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
return RepeatStatus.FINISHED;
}
})
.transactionAttribute(getTransactionAttribute())
.build();
}
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("Tasklet has run");
return RepeatStatus.FINISHED;
}
}).build();
}
@Bean
@StepScope
public Tasklet workerTasklet(
final @Value("#{stepExecutionContext['partitionNumber']}") Integer partitionNumber) {
return new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("This tasklet ran partition: " + partitionNumber);
return RepeatStatus.FINISHED;
}
};
}
@Bean
public Job job1() {
return this.jobBuilderFactory.get("job1")
.start(this.stepBuilderFactory.get("job1step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
logger.info("Job1 was run");
return RepeatStatus.FINISHED;
}
})
.build())
.build();
}
@Bean
public Job job2() {
return this.jobBuilderFactory.get("job2")
.start(this.stepBuilderFactory.get("job2step1")
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
logger.info("Job2 was run");
return RepeatStatus.FINISHED;
}
})
.build())
.build();
}
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build();
}
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build();
}
@Bean
public Job job() {
return this.jobBuilderFactory.get("job")
.start(this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build()).build();
}
@Bean
public FactoryBean<Job> job() {
return new FactoryBean<Job>() {
@Override
public Job getObject() throws Exception {
return JobFactoryBeanConfiguration.this.jobBuilderFactory.get("job")
.start(JobFactoryBeanConfiguration.this.stepBuilderFactory
.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(
StepContribution contribution,
ChunkContext chunkContext)
throws Exception {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build())
.build();
}
@Override
public Class<?> getObjectType() {
return Job.class;
}
@Override
public boolean isSingleton() {
return true;
}
};
}
@Bean
public Job job() {
return this.jobBuilderFactory.get("job")
.start(this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build()).build();
}
@Bean
public Job job1() {
return this.jobBuilderFactory.get("job1").start(
this.stepBuilderFactory.get("job1step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed job1");
return RepeatStatus.FINISHED;
}
}).build()).build();
}
@Bean
public Job job2() {
return this.jobBuilderFactory.get("job2").start(
this.stepBuilderFactory.get("job2step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed job2");
return RepeatStatus.FINISHED;
}
}).build()).build();
}
@Bean
public Job job() {
return this.jobBuilderFactory.get("job")
.start(this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) {
System.out.println("Executed");
return RepeatStatus.FINISHED;
}
}).build()).build();
}
@Bean
public Job jobFail() {
return this.jobBuilderFactory.get("jobA")
.start(this.stepBuilderFactory.get("step1").tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.out.println("Executed");
throw new IllegalStateException("WHOOPS");
}
}).build()).build();
}