0

名称:spring-cloud-dataflow-server 版本:2.5.0.BUILD-SNAPSHOT

我创建了一个非常简单的任务。首先运行它总是可以正常完成,没有任何问题。如果任务再次运行,它会失败并出现以下错误。

任务图 任务定义 第一次运行 - 没有问题 首次运行 - 作业日志 相同任务的后续启动失败并出现以下异常,并且在前一次执行完全完成后重新运行。如果一个任务运行一次就不能再次运行吗? (来自任务执行详细信息的日志 - 执行 ID:246)后续运行失败

Caused by: org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException: A job instance already exists and is complete for parameters={-spring.cloud.data.flow.taskappname=composed-task-runner, -spring.cloud.task.executionid=246, -graph=threetasks-t1 && threetasks-t2 && threetasks-t3, -spring.datasource.username=root, -spring.cloud.data.flow.platformname=default, -dataflow-server-uri=http://10.104.227.49:9393, -management.metrics.export.prometheus.enabled=true, -management.metrics.export.prometheus.rsocket.host=prometheus-proxy, -spring.datasource.url=jdbc:mysql://10.110.89.91:3306/mysql, -spring.datasource.driverClassName=org.mariadb.jdbc.Driver, -spring.datasource.password=manager, -management.metrics.export.prometheus.rsocket.port=7001, -management.metrics.export.prometheus.rsocket.enabled=true, -spring.cloud.task.name=threetasks}.  If you want to run this job again, change the parameters.

4

1 回答 1

1

Spring Batch 应用程序中的作业实例需要唯一的作业参数,这是设计使然。

在这种情况下,由于您使用的是组合任务,您可以使用该属性--increment-instance-enabled=true作为组合任务定义的一部分来处理它。此属性将确保让 Job Instance 获得唯一的 Job 参数。

您可以在此处查看 Composed Task Runner 支持的属性列表

于 2020-05-02T01:17:24.353 回答