Java-接口查询没有值,需要多次调用直到有值,实现方法

embedded/2024/11/15 4:09:22/

CompletableFuture 结合定时重试的策略

使用 CompletableFuture 结合定时重试的策略可以有效地处理异步操作,并在遇到失败时自动重

试。下面是一个使用 Java 实现的例子,展示了如何利用 CompletableFuture 和定时重试来获取数

据。

java">import java.time.Duration;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;public class CompletableFutureRetryExample {private static final int MAX_ATTEMPTS = 5; // 最大尝试次数private static final long INITIAL_SLEEP_TIME_MS = 1000; // 初始等待时间(毫秒)private static final double BACKOFF_FACTOR = 2.0; // 指数退避因子private static final double JITTER_FACTOR = 0.2; // 随机化因子private static final AtomicLong sleepTimeMs = new AtomicLong(INITIAL_SLEEP_TIME_MS); // 当前等待时间public static void main(String[] args) {CompletableFuture<String> future = fetchDataWithExponentialBackoff();future.thenAccept(System.out::println)

http://www.ppmy.cn/embedded/98619.html

相关文章

原生 cesium 实现热力图功能

预览&#xff1a;https://z2586300277.github.io/three-cesium-examples/#/codeMirror?navigationCesiumJS&classifyexpand&idheatMap 国内预览&#xff1a;http://threehub.cn/ 开源地址&#xff1a;https://z2586300277.github.io/three-cesium-examples/#/exampl…

SpringBoot-读取配置文件内容

目录 前言 主页&#xff08;端口号默认8080&#xff09; 1 Value 注解 引用变量的使用 2 Environment 对象 3 ConfigurationProperties &#xff08;配置内容和对象&#xff0c;进行相互绑定&#xff09; 前言 读取配置文件有3 种方式 (1) Value注解 (2) Environm…

Redis 有序集合【实现排行榜】

使用 Redis 的 Sorted Set 数据结构可以非常高效地实现实时排行榜功能。Sorted Set 允许将元素按分数进行排序&#xff0c;同时支持插入、删除和查询操作&#xff0c;且这些操作的时间复杂度较低&#xff0c;非常适合处理高并发的场景。 实现思路 插入操作&#xff1a;当用户…

MyBatis源码系列3(解析配置文件,创建SqlSessionFactory对象)

创建SqlSessionFactory&#xff1b; 首先读取配置文件&#xff0c;使用构造者模式创建SqlSessionFactory对象。 InputStream inputStream Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder…

CPMF复现笔记(1):docker环境配置+数据预处理

文章来自曹云康的最新论文《Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection》,在MVTecAD-3D取得了最佳分数。代码地址:caoyunkang/CPMF: [PR] Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection (github.com) 我的复…

vue2子组件生命周期被调用两次

目前解决办法是改成了这种写法&#xff0c;改为这种不会出现加载两次子组件生命周期的问题 <el-tabs v-model"activeName" style"margin: 0px"><el-tab-pane name"systemLogCollection"><span slot"label">{{ tabLi…

LeetCode - LCR 146- 螺旋遍历二维数组

LCR 146题 题目描述&#xff1a; 给定一个二维数组 array&#xff0c;请返回「螺旋遍历」该数组的结果。 螺旋遍历&#xff1a;从左上角开始&#xff0c;按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c;然后再进入内部一层重复相同的步骤&#xff0c;直到提取完…

小琳AI课堂 - AIGC在不同行业的应用潜力与未来发展深度解析

小琳AI课堂 - AIGC在不同行业的应用潜力与未来发展深度解析 大家好&#xff0c;这里是小琳AI课堂&#xff01;今天我们将深入探讨AIGC&#xff08;AI Generated Content&#xff0c;人工智能生成内容&#xff09;在不同行业中的应用潜力&#xff0c;以及其未来发展前景&#x…