定义:一个重试机制的框架。

使用方式:

  • 添加依赖
<dependency>
            <groupId>com.github.rholder</groupId>
            <artifactId>guava-retrying</artifactId>
            <version>2.0.0</version>
        </dependency>
  • 创建重试器,执行重试方法
package com.pjk.demo;

import com.github.rholder.retry.*;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

/**
 * @author PJK
 */
public class Demo_GuavaRetry {

    public static int a = 3;
    public static int i=0;


    public static void main(String[] args) {
//        创建重试器
        Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder()
                .retryIfResult(result-> result!=null && !result)
                .withWaitStrategy(WaitStrategies.fixedWait(1, TimeUnit.SECONDS))
                .withStopStrategy(StopStrategies.stopAfterAttempt(10))
                .build();

        try {
//            调用call方法  异步执行 重试任务
            retryer.call(() -> {
                a--;
                i++;
                if (a == 0) {
                    System.out.println("结果为0,终止尝试");
                    return true;
                } else {
                    System.out.println("第"+i+"次尝试");
                    return false;
                }
            });
        } catch (ExecutionException | RetryException e) {
            System.out.println(e);
        }
    }
}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6