首页 > 其他分享 >Guava Retry

Guava Retry

时间:2023-09-17 16:01:19浏览次数:39  
标签:Retry System 重试 static result import Guava public

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

使用方式:

  • 添加依赖
<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);
        }
    }
}

标签:Retry,System,重试,static,result,import,Guava,public
From: https://blog.51cto.com/u_16205743/7502515

相关文章

  • 安装celery后,提示WARNING/MainProcess...you should set broker_connection_retry_on_
    调用了Celery的config_from_object方法,并新建文件celery_config.py存放设置 在celery中设置broker_connection_retry_on_startup=True 效果没有提示了。 ......
  • spring retry
    一、接入springboot2.7.14springretry从2.0.2版本之后,从springbatch里剥离出来成为一个单独的工程,因此我们引入springretry最新版本可以直接如下引入<dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><versio......
  • ChatGPT 问答00022 Guava Retryer使用
    使用GuavaRetryer进行方法异常重试的步骤如下:添加GuavaRetryer依赖:在项目的构建文件(如pom.xml)中添加以下依赖项:<dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version></de......
  • 我是如何使用Spring Retry减少1000 行代码
    本文翻译自国外论坛medium,原文地址:https://levelup.gitconnected.com/how-i-deleted-more-than-1000-lines-of-code-using-spring-retry-9118de29060使用SpringRetry重构代码的综合指南。问题介绍在我的日常工作中,我主要负责开发一个庞大的金融应用程序。当客户发送请求......
  • Spring-Retry 重试机制小计
    在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而sprin......
  • [缓存] Google Guava Cache本地缓存框架一览
    1序言上一次使用GuavaCache框架还是在2年前浙江某大学的数据服务平台项目中,用于缓存用户的数据服务购物小车数据;参见:[缓存]缓存技术初探-博客园/千千寰宇而这一次,是在基于GoogleGuavaCache+refreshAfterWrite特性来缓存Influxdb的物联网信号数据表的信号字段信......
  • Golang gRPC学习(05): retry重试
    什么是重试如果服务出现了错误,主要是网络,服务器出现了短暂异常的时候,该怎么办?我们都会人工或者自动的重新连接服务试试,看服务是否恢复可用了。这种重新进行连接服务的一种方式就是重试。如果是在微服务里,应该属于微服务治理的范畴。重试是处理网络服务出现暂时不可用的一种方......
  • Guava环境设置
    Guava本地环境设置这部分指导如何下载和设置Java在机器上。请按照以下步骤来设置环境。JavaSE免费提供链接:下载Java。所以,根据操作系统下载对应版本。按照说明下载java和运行.exe在机器上,并按说明安装Java。一旦机器上安装了Java,还需要设置环境变量指向正确的JAVA安装目录:Wi......
  • java限流-基于基于guava实现
     1、引入guava依赖<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>2、自定义限流注解自定义一个限流用的注解,后面在需要限流的方法或接口上面只需添加该注解即可; importjava......
  • 使用guava的cache实现缓存
    一、maven<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.......