春季启动批处理到具有多个作业的春季云任务

Posted

技术标签:

【中文标题】春季启动批处理到具有多个作业的春季云任务【英文标题】:spring boot batch to spring cloud task with multiple jobs 【发布时间】:2019-01-28 06:52:07 【问题描述】:

我有一个 Spring Boot 批处理应用程序,它有 5 个由控制台使用命令执行的独特作业:

java -jar artifactName jobName param1

但是现在这个项目要迁移到云端,所以我需要使用spring cloud task。到目前为止一切顺利。

我知道我必须在主类中定义 @enableTask 并在 application.properties 中定义属性: spring.application.name=cloudTask

因此,阅读 Spring 文档了解,为了使用 spring cloud dataflow server 触发我的作业,可以定义一个在这种情况下我应该用作 cloudTask 的任务。但没有意义,因为将如何触发它,因为我的应用程序有 5 个不同的工作,所以问题是:

如何将此任务名称与我在应用程序中定义的工作联系起来? 逻辑告诉我,我还需要定义 5 个任务名称,那么如何将此任务名称与相应的作业绑定。

【问题讨论】:

【参考方案1】:
    使用 @EnableTask 注释,您应该能够在 SCDF 中将批处理注册为任务应用程序 - 在“应用程序”下 一旦您的批次出现在应用程序中, 如果所有作业 5 个作业都是独立的,您应该能够创建 5 个不同的组合任务,应用名称相同但参数不同, 或 如果它们是相互关联的,那么通过在 DSL 中提供别名并传递相应的参数集,可以将链接的作业组合成一个组合任务。 组合任务启动后,可以在“Task -> Executions”下查看任务执行状态,在“Jobs”下可以查看对应的Jobs状态

要将自定义参数传递给任务,可以利用@EnableConfigurationProperties @ConfigurationProperties

【讨论】:

以上是关于春季启动批处理到具有多个作业的春季云任务的主要内容,如果未能解决你的问题,请参考以下文章

动态创建作业的春季批处理测试

春季批处理作业未读取第一行

春季云任务多个数据源的问题

有没有办法 MySQLMaxValueIncrementer 在春季批处理中连接到多个数据源

在春季批处理(spring-boot-1.5.2.RELEASE)中使用多个数据源在启动时引发异常

TransactionRequiredException:没有事务正在进行春季批处理作业和休眠