Spring SCDF:重新启动并恢复组合任务
SCDF Composited Task Runner为我们提供了启用--increment实例的选项。此选项创建一个人工run.id参数,该参数在每次运行时递增。因此,该任务对于Spring批处理是唯一的,并且将重新启动 IdIncrementer的问题是当我将它与没有IdIncrementer的执行混合在一起时。如果任务未完成,我希望恢复该任务。我遇到的问题是,当任务在没有iDiCrementer的情况下完成时,我无法使用iDiCrementer再次启动任务 我想知道什么是最好的方式重新启动的选项恢复 我的想法是创建一个新的IdResumer,它使用与上次执行相同的run.id 我们在Openshift v3.11.98上运行SCDF2.2.1,并使用CTR 2.1.1 复制此操作的步骤如下:Spring SCDF:重新启动并恢复组合任务,spring,spring-cloud-dataflow,spring-cloud-task,Spring,Spring Cloud Dataflow,Spring Cloud Task,SCDF Composited Task Runner为我们提供了启用--increment实例的选项。此选项创建一个人工run.id参数,该参数在每次运行时递增。因此,该任务对于Spring批处理是唯一的,并且将重新启动 IdIncrementer的问题是当我将它与没有IdIncrementer的执行混合在一起时。如果任务未完成,我希望恢复该任务。我遇到的问题是,当任务在没有iDiCrementer的情况下完成时,我无法使用iDiCrementer再次启动任务 我想知道什么是最好的方式重新启动
dummy1:dummy&&dummy2:dummy&&dummy3:dummy
。虚拟应用程序是一个docker容器,随机失败的几率为50%--increment instance=true
,并等待其中一个虚拟任务失败(如果需要,重新启动)--increment instance enabled=false
。并让它成功完成(如果需要,重做)--increment instance enabled=true
再次启动SCDF任务作业实例alreadycompleteexception
,即使再次启用了--增量实例enabled
原因:
org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException:
作业实例已存在,并且已完成
parameters={-spring.cloud.data.flow.taskappname=组合任务运行程序,
-spring.cloud.task.executionid=3190,-spring.datasource.username=testuser,-graph=aaa-stackoverflow-dummy2&&aaa-stackoverflow-dummy3,-spring.cloud.data.flow.platformname=default,-spring.datasource.url=jdbc:postgresql://10.10.10.10:5432/tms_efa?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory¤tSchema=dev,
-spring.datasource.driverClassName=org.postgresql.Driver,-spring.datasource.password=pass1234,-spring.cloud.task.name=aaa stackoverflow,-dataflowServerUri=,-increment instance enabled=true}。如果要再次运行此作业,请更改参数
是否有更好的方法来恢复和重新启动任务?由于合成任务运行器是使用Spring Batch构建的,因此您可以从仪表板上的“作业”选项卡重新启动合成任务运行。重复步骤1和2。但对于步骤3,请转到仪表板上的“作业”选项卡,单击要重新启动的作业上的下拉按钮。然后选择
重新启动作业
。感谢您的回答@Glenn。我无法使用该函数,因为它可能与Kubernetes/Openshift组合存在一个bug。当我使用该按钮时,它将用以下参数启动一个pod:[…]--graph=aaa-stackoverflow-v2-dummy2&&aaa-stackoverflow-v2-dummy3[…]--graph=aaa-stackoverflow-v2-dummy2&&aaa-stackoverflow-v2-dummy3--increment instance enabled=true[…://code>所有其他参数也传递两次。我还怀疑它会重新启动任务,而不是重新启动任务,因为它会传递--increment instance enabled=true
,或者我理解错了吗?因为组合任务运行程序是使用Spring Batch构建的,所以您可以从仪表板上的“作业”选项卡重新启动组合任务运行。重复步骤1和2。但对于步骤3,请转到仪表板上的“作业”选项卡,单击要重新启动的作业上的下拉按钮。然后选择重新启动作业
。感谢您的回答@Glenn。我无法使用该函数,因为它可能与Kubernetes/Openshift组合存在一个bug。当我使用该按钮时,它将用以下参数启动一个pod:[…]--graph=aaa-stackoverflow-v2-dummy2&&aaa-stackoverflow-v2-dummy3[…]--graph=aaa-stackoverflow-v2-dummy2&&aaa-stackoverflow-v2-dummy3--increment instance enabled=true[…://code>所有其他参数也传递两次。我还怀疑它会重新启动任务,而不是恢复任务,因为它传递了--increment instance enabled=true
,或者我理解错了吗?