Springboot 执行器 DB 健康检查

时间:2021-05-19 03:13:33

标签: java spring-boot microservices datasource spring-boot-actuator

我需要更改频率以检查 springboot 执行器中的数据库健康状况。默认的数据库健康检查查询每毫秒执行一次。我想让这个查询每 1 分钟而不是毫秒执行一次。 有什么办法可以自定义吗?

1 个答案:

答案 0 :(得分:1)

实际上执行器仅在您使用 api 时执行。如果你想更新你的执行器,你可以做两件事,一是每分钟调用一次 api,另一件事是创建自定义健康检查并启用调度。

@SpringBootApplication

@EnableScheduling

public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication .class, args);
    }
}
@Service
public class CustomService {

    @Scheduled(fixedDelay = 60000)
    public Object getResultFromQuery() {
        // call your query
    }

}
@Component
public class HealthCustomCheck implements HealthIndicator {

    private final CustomService customService;

    public HealthCustomCheck(CustomService customService) {
        this.customService = customService;
    }


    @Override
    public Health health() {
        return Health.up().withDetail("yourQuery", customService.getResultFromQuery().toString()).build();
    }
}