您的位置:首页 > 编程语言 > Java开发

spring batch 并行执行任务

2018-02-24 13:55 239 查看
@RequestMapping("/startall")
@ResponseBody
String startall() throws ParseException {
if (TimeFlag.getJobRun()) {
System.out.println("Cron Start All Data Rsync Job. But Job Running.");
return "Job Running. wait.....";
}
System.out.println("Url Start All Data Rsync Job.");
JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
jobParametersBuilder.addDate("Date", new Date());
JobParameters dateJobParameters = jobParametersBuilder.toJobParameters();

try {
jobLauncher.run(importAllUserJob(), dateJobParameters);
} catch (JobExecutionAlreadyRunningException e) {
e.printStackTrace();
} catch (JobRestartException e) {
e.printStackTrace();
} catch (JobInstanceAlreadyCompleteException e) {
e.printStackTrace();
} catch (JobParametersInvalidException e) {
e.printStackTrace();
}

return "执行完成";
}

public Job importAllUserJob() {
Flow splitFlow = new FlowBuilder<Flow>("splitflow").split(new SimpleAsyncTaskExecutor()).add(
new FlowBuilder<Flow>(AllCITnsurance.getName()).from(AllCITnsurance).end(),
new FlowBuilder<Flow>(AllCustomer.getName()).from(AllCustomer).end(),
new FlowBuilder<Flow>(AllCInsurance.getName()).from(AllCInsurance).end(),
new FlowBuilder<Flow>(AllContacts.getName()).from(AllContacts).end(),
new FlowBuilder<Flow>(AllVehicles.getName()).from(AllVehicles).end(),
new FlowBuilder<Flow>(AllInsurance.getName()).from(AllInsurance).end(),
// new FlowBuilder<Flow>(AllCFnsurance.getName()).from(AllCFnsurance).end(),
// new FlowBuilder<Flow>(AllUserTag.getName()).from(AllUserTag).end(),
new FlowBuilder<Flow>(CustomerSalesdate.getName()).from(CustomerSalesdate).end()
// new FlowBuilder<Flow>(AVinnoTel.getName()).from(AVinnoTel).end(),
// new FlowBuilder<Flow>(AllVOHistory.getName()).from(AllVOHistory).end()
).build();

return jobBuilderFactory.get("RsyncAllDataJob")
.incrementer(new RunIdIncrementer())
.start(splitFlow)
.end()
.build();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java