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

    }

}
相关推荐
用户298698530147 分钟前
告别手动复制:Java 拆分 Word 文档的两种实用方案
java·后端
ujainu小12 分钟前
CANN hixl:大模型 PD 分离场景的零拷贝通信库
android·java·缓存
z2005093012 分钟前
今日算法(组合问题III)(回溯的使用)
java·算法·leetcode
XiYang-DING12 分钟前
【Java EE】IPv6
java·java-ee·php
Determined_man14 分钟前
Spring 事务原子性问题排查与修复
后端
GuWenyue14 分钟前
从零搭建用户管理系统!60分钟搞定RESTful接口+Bootstrap语义化首页
前端·后端
Re_zero15 分钟前
从乐观锁被冲烂到原子扣减稳如磐石:高并发防超卖方案的三次迭代
java·后端
pixcarp18 分钟前
Redis ZSet:底层设计与实践
数据库·redis·后端·学习·golang·web
小橙编码日志18 分钟前
MCP(Model Context Protocol)详解
后端
落木萧萧82518 分钟前
自动生成 SQL 会拖慢性能吗?实测 MyBatisGX、MyBatis、MyBatis-Plus、MyBatis-Flex
java·orm