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();
        }

    }

}
相关推荐
盐真卿几秒前
python第八部分:高级特性(二)
java·开发语言
布列瑟农的星空3 分钟前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
上海合宙LuatOS5 分钟前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu10 分钟前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇13 分钟前
【实习】银行经理端线下领取扫码功能实现方案
java
暮色妖娆丶13 分钟前
Spring 源码分析 单例 Bean 的创建过程
spring boot·后端·spring
野犬寒鸦14 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
黎雁·泠崖29 分钟前
【魔法森林冒险】2/14 抽象层设计:Figure/Person类(所有角色的基石)
java·开发语言
Java编程爱好者30 分钟前
Seata实现分布式事务:大白话全剖析(核心讲透AT模式)
后端
神奇小汤圆32 分钟前
比MySQL快800倍的数据库:ClickHouse的性能秘密
后端