我们的应用程序是使用Spring Boot + Gradle构建的。我们对实现春季批处理作业有一个新的要求,它将使用autosys(作业计划工具)来触发,它有3个步骤执行3种不同的操作(文件准备,ftp和审核操作)。我已附上@EnableBatchProcessing配置文件供您参考。这是我与Spring Cloud Data Flow有关的问题。
@Configuration
@EnableBatchProcessing
public class TaskletsConfig {
@Autowired
private JobBuilderFactory jobs;
@Autowired
private StepBuilderFactory steps;
@Bean
protected Step flatFilePreparation() {
return steps
.get("flatFilePreparation")
.tasklet(new FlatFilePreparation())
.build();
}
@Bean
protected Step ftpFile() {
return steps
.get("ftpFile")
.tasklet(new FtpFile())
.build();
}
@Bean
protected Step auditFilePreparation() {
return steps
.get("auditFilePreparation")
.tasklet(new AuditFilePreparation())
.build();
}
@Bean
protected Step errorStep() {
return steps
.get("errorStep")
.tasklet(new ErrorStep())
.build();
}
@Bean
public Job job() {
return jobs.get("psbijob").start(flatFilePreparation()).on(ExitStatus.FAILED.getExitCode()).to(errorStep())
.from(flatFilePreparation()).on("*").to(ftpFile()).on(ExitStatus.FAILED.getExitCode()).to(errorStep())
.from(ftpFile()).on("*").to(auditFilePreparation()).end().build();
}
@Bean
public JobRepository jobRepository() throws Exception {
MapJobRepositoryFactoryBean factory
= new MapJobRepositoryFactoryBean();
factory.setTransactionManager(transactionManager());
return (JobRepository) factory.getObject();
}
@Bean
public PlatformTransactionManager transactionManager() {
return new ResourcelessTransactionManager();
}
@Bean
public JobLauncher jobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository());
return jobLauncher;
}
}
答案 0 :(得分:0)
我将尝试解开问题。
可以使用Gradle构建Spring云数据流项目吗?
创建和启动批处理作业所需的所有Spring Cloud Data Flow(SCDF)都是Spring Boot应用程序(一个uber-jar)。是否使用Maven,Gradle或其他自定义方式构建应用程序都无关紧要。 Docker是另一个受欢迎的选择,这是Kubernetes的唯一选择。在PCF中,我们建议使用Maven工件,您当然也可以使用Gradle来生产它。
我们正在寻找Spring Cloud数据流中的Spring批管理界面类型的功能或操作。我可以知道如何在Spring Cloud数据流中配置Jobs吗?任何示例项目?
我建议您浏览参考指南中的Dashboard部分。另外,我们在SCDF Microsite中有一个端到端任务和Batch Developer Guide。您在Spring Batch Admin中所做的任何事情和所有事情都可以在SCDF中完全涵盖,并且它上面还包含许多其他功能。请花点时间至少检查一下所有内容。
我们是否需要添加任何必须在PCF基础架构中分配的服务/插件/空间以支持Spring Cloud数据流?
没有特殊要求。 SCDF也仅仅是一个Boot应用程序。您可以将其手动推送到组织/空间,也可以使用SCDF Tile for PCF(一种完全托管的市场服务)来自动配置SCDF和相关组件(安全性/升级/数据库/代理)。
Spring Cloud数据流项目生产准备就绪了吗?可以在生产中使用吗?
SCDF的1.0 GA版本于2016年7月发布。我们目前的版本为2.1 GA。自从第一个GA里程碑以来,已经发布了50多个产品。 PCF的SCDF瓷砖现在也已经生产超过1年。而且,特别是在PCF中,我们有多个客户在生产中使用SCDF。
答案 1 :(得分:0)
是否可以在不使用Spring Cloud DataFlow的情况下触发Spring Cloud任务?我能够在Spring Cloud数据流UI中注册我们的应用程序,但是批处理作业是由Autosys工具触发的(不是手动启动)。因此,我们要确保SCDF能够跟踪在SCDF空间外部触发的所有作业。我们的工作是每周工作。