首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用camunda中的补偿活动重试

使用camunda中的补偿活动重试
EN

Stack Overflow用户
提问于 2021-08-24 12:35:20
回答 1查看 164关注 0票数 2

我有3个微服务,正在尝试为每个服务实现补偿活动。现在假设在一个错误补偿事件触发之后,现在这个补偿活动本身抛出了错误。如果补偿活动失败,我想重试5次。以下是我实现的示例代码,但它不起作用。对此有何建议。

代码语言:javascript
运行
复制
public static BpmnModelInstance createSaga() {
    // define saga as BPMN process
    ProcessBuilder flow = Bpmn.createExecutableProcess("poc");

    // - flow of activities and compensating actions
    flow.startEvent()
            .serviceTask("Project2").name("Save Project2").camundaClass(SaveProject2.class)
            .boundaryEvent().compensateEventDefinition().compensateEventDefinitionDone()
            .compensationStart().serviceTask("RollbackProject2").camundaClass(RollbackProject2.class).camundaFailedJobRetryTimeCycle("R5/PT5S").compensationDone()
            .serviceTask("Project3").name("Save Project3").camundaClass(SaveProject3.class)
            .boundaryEvent().compensateEventDefinition().compensateEventDefinitionDone()
            .compensationStart().serviceTask("RollbackProject3").camundaFailedJobRetryTimeCycle("R5/PT1M").camundaClass(RollbackProject3.class).compensationDone()
            .serviceTask("Project4").name("Save Project4").camundaClass(SaveProject4.class)
            .boundaryEvent().compensateEventDefinition().compensateEventDefinitionDone()
            .compensationStart().serviceTask("RollbackProject4").camundaClass(RollbackProject4.class).compensationDone()
            .endEvent();

    // - trigger compensation in case of any exception (other triggers are possible)
    flow.eventSubProcess()
        .startEvent().error("java.lang.Throwable")
        .intermediateThrowEvent().compensateEventDefinition()
        .compensateEventDefinitionDone()
        .endEvent();
// ready
BpmnModelInstance saga = flow.done();
EN

回答 1

Stack Overflow用户

发布于 2021-08-26 17:42:41

您可以在处理补偿的服务任务上激活Asynchronous configure,这允许您在补偿上配置重试选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68907698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档