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

    }

}
相关推荐
独自破碎E1 分钟前
Java中的Exception和Error有什么区别?
java·开发语言
小徐Chao努力7 分钟前
【Langchain4j-Java AI开发】08-向量嵌入与向量数据库
java·数据库·人工智能
qq_3771123716 分钟前
从零开始深入理解并发、线程与等待通知机制
java·开发语言
小徐Chao努力18 分钟前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
JoannaJuanCV30 分钟前
自动驾驶—CARLA仿真(30)交通管理器(Traffic Manager)
java·redis·自动驾驶
小高Baby@1 小时前
使用Go语言中的Channel实现并发编程
开发语言·后端·golang
乐韵天城1 小时前
SpringBoot中如何手动开启数据库事务
数据库·spring boot
Knight_AL1 小时前
Spring AOP 中 JoinPoint 使用指南
java·python·spring
jmxwzy1 小时前
点赞系统问题
java·redis·tidb·pulsar
ss2731 小时前
ThreadPoolExecutor:自定义线程池参数
java·开发语言