【发布时间】:2015-03-30 04:41:03
【问题描述】:
在我的 Spring Boot 应用程序中,我需要等到(默认 Tomcat)Web 服务器完全初始化并准备好接收流量,然后再向其他应用程序发送消息,告诉它们向我发送 HTTP 请求(特别是命中的监控系统我的/health)。
我尝试将向其他应用程序发送消息的逻辑放在ApplicationListener<ContextRefreshedEvent> 中,但现在还为时过早。其他应用程序尝试向我提出请求并失败。现在我已经在onApplicationEvent 中放了一个延迟,这很有效,但它很老套而且很活泼。
我也尝试添加ServletContextInitializer,但它更早触发了。
我假设我需要使用 Tomcat API,但我想看看 Boot API 中是否有相关内容。
【问题讨论】:
-
你看到了吗:stackoverflow.com/a/4747639/283084?此外,也许您可以将您的应用隐藏在 LB 后面,并且 LB 不会将您的应用放入其池中,直到对
/health的请求返回 HTTP OK (200)。
标签: tomcat spring-boot