LiteFlow高级特性:retry重试

本文介绍了LiteFlow框架中的retry特性,包括通过标签配置、重写set方法和使用注解实现节点执行失败时的重试。着重讲解了通过注解方式配置retry的官方推荐做法。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、retry

二、使用方法

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、retry

retry作为liteflow提供的高级特性之一,可以在node执行失败时,进行重试。

二、使用方法

1、通过标签配置

<liteflow>
    <node id="task1" name="Task 1">
        <!-- Task 1 configuration -->
        <retry maxRetryCount="3" retryInterval="5000"/>
    </node>
</liteflow>

我自己试过了,重试的配置不能加载到task1这个node节点的属性里,最终没能重试

2、通过重写set方法 

@LiteflowComponent
public class NodeA extends NodeComponent {

    @Override
    public void process() {
        System.out.println("NodeA executed");
        System.out.println(this.getRetryCount());
        throw new RuntimeException("测试异常");
    }

    @Override
    public void setRetryCount(int retryCount) {
        super.setRetryCount(3);
    }
}

这种方式可以实现重试,单测结果如下:

2024-02-22 10:21:53.279|INFO|main|127.0.0.1|014ad6064252452d897c4885e10f520d|1.0|com.yomahub.liteflow.flow.element.Node.execute[127]|[2fbb2ca588a543e78012c397a6d55b92]:[O]start component[nodeA] execution
NodeA executed
3
2024-02-22 10:21:53.286|INFO|main|127.0.0.1|014ad6064252452d897c4885e10f520d|1.0|com.yomahub.liteflow.flow.executor.DefaultNodeExecutor.retry[61]|[2fbb2ca588a543e78012c397a6d55b92]:component[nodeA] performs 2 retry
NodeA executed
3
2024-02-22 10:21:53.287|INFO|main|127.0.0.1|014ad6064252452d897c4885e10f520d|1.0|com.yomahub.liteflow.flow.executor.DefaultNodeExecutor.retry[61]|[2fbb2ca588a543e78012c397a6d55b92]:component[nodeA] performs 3 retry
NodeA executed
3
2024-02-22 10:21:53.287|INFO|main|127.0.0.1|014ad6064252452d897c4885e10f520d|1.0|com.yomahub.liteflow.flow.executor.DefaultNodeExecutor.retry[61]|[2fbb2ca588a543e78012c397a6d55b92]:component[nodeA] performs 4 retry
NodeA executed
3

3、通过注解的方式

@LiteflowComponent
@LiteflowRetry(5)
public class NodeA extends NodeComponent {

    @Override
    public void process() {
        System.out.println("NodeA executed");
        System.out.println(this.getRetryCount());
        throw new RuntimeException("测试异常");
    }
    
}

通过第二种、第三种方式,我们能确定,最终重试依赖于属性:retryCount,这两种都可以实现重试,官方给出的文档中,推荐的也是第三种注解的方式


总结

一天进步一点点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值