我正在开发一个基于Spring Boot的应用程序,该应用程序通过API动态添加和删除特定于域的任务。由于这些作业可能会分别失败,因此我想为每个作业运行时添加HealthIndicator
,然后将其删除。 Spring Actuator的 health 端点已经集成到多个监视器中,这只会将该信息推送到下游。
我当然可以将所有作业的运行状况检查汇总到一个HealthIndicator
Bean中,但是如果以某种方式列出了所有检查的运行状况,我希望这样做。 HealthIndicator
确实只允许返回一个Health
实例。有没有办法返回此类对象的集合?
答案 0 :(得分:8)
Spring Boot 2.1为此引入了HealthIndicatorRegistry。每当查询运行状况端点时,都会要求注册表提供所有已注册运行状况指示器的快照,然后调用这些指示器中的每一个来确定应用程序的运行状况。
注册表可以作为bean使用,因此可以注入到管理特定于域的任务的类中。然后,在添加和删除这些任务时,它可以调用register(String, HealthIndicator)
和unregister(String)
。