Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring SCDF:重新启动并恢复组合任务_Spring_Spring Cloud Dataflow_Spring Cloud Task - Fatal编程技术网

Spring SCDF:重新启动并恢复组合任务

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再次启动任务 我想知道什么是最好的方式重新启动

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

复制此操作的步骤如下:

  • 使用以下定义创建新的SCDF任务定义:
    dummy1:dummy&&dummy2:dummy&&dummy3:dummy
    。虚拟应用程序是一个docker容器,随机失败的几率为50%
  • 执行SCDF任务时,启用
    --increment instance=true
    ,并等待其中一个虚拟任务失败(如果需要,重新启动)
  • 要恢复相同的失败执行,请立即执行SCDF任务
    --increment instance enabled=false
    。并让它成功完成(如果需要,重做)
  • 使用
    --increment instance enabled=true
    再次启动SCDF任务
  • 在步骤4,合成的任务抛出
    作业实例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
    ,或者我理解错了吗?