【问题标题】:how to reset a cadence workflow with client sdk?如何使用客户端 sdk 重置节奏工作流程?
【发布时间】:2022-10-16 22:18:01
【问题描述】:

我有一个包含 3 个活动的节奏工作流程。设想。第一个活动在执行第二个时完成,达到重试限制后工作流失败。现在问题已经解决了。如何重新启动失败的工作流程。

我读过这个问题related question

我想知道如何在 java 客户端 sdk 中使用 reset API 来实现它。

cadence-dependence:编译组:'com.uber.cadence',名称:'cadence-client',版本:'3.5.0'

谢谢你的帮助。

【问题讨论】:

    标签: java cadence-workflow uber-cadence


    【解决方案1】:

    最好的方法是在您的 Cadence/Temporal 项目中使用 iWF

    它正在服务REST API for workflow operations。您可以使用Postman/Curl 重置工作流程。

    它还有一个Java API for reset

    【讨论】:

    • 谢谢您的回复。 iwf 是节奏/时间的延伸吗?
    【解决方案2】:

    在 WorkflowServiceTChannel 类中,我找到了一个方法 ResetWorkflowExecution。通过它可以实现复位。代码显示为打击:

    public void testReset(String workflowid, String runid, String completeid){ WorkflowClient workflowClient = WorkflowClient.newInstance( 新的 WorkflowServiceTChannel( ClientOptions.newBuilder().setHost("127.0.0.1").setPort(8080).setFeatureFlags(new FeatureFlags().setWorkflowExecutionAlreadyCompletedErrorEnabled(true)).build()), WorkflowClientOptions.newBuilder().setDomain("domain-test").build()); ResetWorkflowExecutionRequest 请求 = 新的 ResetWorkflowExecutionRequest(); WorkflowExecution workflowExecution = new WorkflowExecution(); workflowExecution.setWorkflowId(workflowid); workflowExecution.setRunId(runid); request.setRequestId(UUID.randomUUID().toString()); request.setDomain("域测试"); request.setDecisionFinishEventId(Long.valueOf(completeid)); request.setWorkflowExecution(workflowExecution); 尝试 { workflowClient.getService().ResetWorkflowExecution(request); } 捕捉(TException e){ e.printStackTrace(); } }

    【讨论】:

      最近更新 更多