【问题标题】:how to start only one job in a task in spring cloud dataflow如何在春季云数据流中的一项任务中只开始一项工作
【发布时间】:2018-09-10 07:24:10
【问题描述】:

我有一个简单的任务,它有 2 个工作。当我运行任务 Job 1 和 Job 2 一个接一个运行。如何以某种方式对其进行配置,以便在传递作业名称时仅运行该作业?

【问题讨论】:

  • 是否有什么东西阻止您为 job1 执行一项任务而为 job2 执行另一项任务?这将通过设计解决您的问题。现在回答你的问题,看我的回答。希望对您有所帮助。
  • 实际上我们目前正在使用spring batch admin。我们有大约 130 个工作岗位。我们创建了一个罐子中包含 10-20 个工作的罐子。我们已经通过 XML 配置了它们。我们计划删除调度程序并将它们转换为任务。有什么建议么?谢谢

标签: spring spring-batch spring-cloud spring-cloud-dataflow spring-cloud-task


【解决方案1】:

默认情况下,Spring Boot 在启动时执行应用程序上下文中的所有作业(参见here)。如果您只想执行一项作业,则需要使用 spring.batch.job.names 属性指定其名称。

在您的情况下,您可以添加一个任务参数并指定要运行的作业。例如:如果您的任务包含两个作业job1job2,您可以添加任务参数--spring.batch.job.names=job1 以仅运行job1

确保将-- 添加到密钥中。 SCDF 服务器将执行的命令应该是这样的:

2018-09-10 12:23:45.932  INFO 57560 --- [nio-9393-exec-1] o.s.c.d.spi.local.LocalTaskLauncher      : Command to be executed: java -jar myjob.jar --spring.batch.job.names=job1 --spring.cloud.task.executionid=1

有了这个参数,只有job1应该被执行。

希望这会有所帮助。

【讨论】:

  • 嘿,非常感谢。有效。巨大的帮助。另外,知道如何订购我的工作吗?一个类似的标签,我可以先运行job2然后运行job1。 --spring.batch.job.names=job2,job1 先运行 1,然后运行 ​​2,因为 job1 在 job2 之前定义。谢谢。
猜你喜欢
  • 2021-05-18
  • 2022-10-05
  • 1970-01-01
  • 2019-05-18
  • 2019-05-04
  • 2020-11-24
  • 2019-01-28
  • 2012-07-28
  • 2022-01-16
相关资源
最近更新 更多