Springboot基于健康检查服务预热

文章目录

用于服务启动之后,健康检查完成才会给服务流量

java 复制代码
/**
 * http://localhost:8080/actuator/health
 * 服务启动后,服务健康状态为DOWN,等待执行完成warmup()之后变为UP
 *
 * @author batman
 */
@Component
public class MyHealthIndicator implements HealthIndicator {
    public static final AtomicBoolean preheat = new AtomicBoolean(false);

    public static final AtomicBoolean preheatEnd = new AtomicBoolean(false);

    public static final AtomicInteger count = new AtomicInteger(0);

    @Override
    public Health health() {
        if (preheat.compareAndSet(false, true)) {
            warmup();
            preheatEnd.compareAndSet(false, true);
        }

        if (!preheatEnd.get()) {
            return Health.down().build();
        }

        return Health.up().build();
    }

    private void warmup() {

        try {
            Thread.sleep(5000L
            );
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}
相关推荐
码农水水1 分钟前
腾讯Java面试被问:阻塞队列BlockingQueue的实现原理
java·后端·python·面试
京东零售技术2 分钟前
15 年评价中台如何涅槃?超百亿数据×千万 QPM×百万行代码的重构全景复盘
后端
廋到被风吹走15 分钟前
【Spring】BeanPostProcessor详解
java·后端·spring
bbq粉刷匠19 分钟前
二叉树中两个指定节点的最近公共祖先
java·算法
ppo9226 分钟前
Spring Boot 集成 Kafka 3.9.0:部署、监控与消息发送教程
java·架构
爱分享的鱼鱼33 分钟前
完整理解乐观锁(以预定系统为例)
后端
JavaEdge.33 分钟前
IDEA卡死没反应的全部解决方案
java·ide·intellij-idea
高山上有一只小老虎39 分钟前
使用Memory Analyzer (MAT)分析内存溢出
java·jvm
赴前尘1 小时前
golang获取一个系统中没有被占用的端口
开发语言·后端·golang