使用Spring Boot执行器安全地关闭其他服务器吗?

使用Spring Boot执行器安全地关闭其他服务器吗?,第1张

使用Spring Boot执行器安全地关闭其他服务器吗?

Spring Bootshutdown端点调用此类:在您的

org.springframework.boot.actuate.endpoint.ShutdownEndpoint
上调用。这反过来…
close()``ApplicationContext

  • 摧毁豆子
  • 关门豆工厂
  • 停止嵌入式servlet容器

如果您的bean是已订购的并且已经精心编写了关闭方法,那么应该没问题。但是,如果没有,那么在该关闭周期的某个时刻“
3个客户端正在运行的作业”可能会被中断。此外,可能在调用关闭和启动关闭周期之间的较小时间范围内建立新连接。

Spring提供了应用程序事件和侦听器挂钩,使您可以参与关闭周期。在

ContextClosedEvent
发布 之前,
豆类被破坏,嵌入式集装箱关机等,所以你可以使用这个默认的行为踢之前实现自己的关闭行为,例如:

public class ShutdownListener implements ApplicationListener<ContextClosedEvent> {    @Override    public void onApplicationEvent(ContextClosedEvent event) {        //     }}

您可以实现此监听器,使其

  • 拒绝使用HTTP 503的连接请求(如果不处理HTTP请求,则等同于该请求)
  • 暂停以允许所有机上作业在继续关闭周期之前完成

您以与在Spring Boot中注册任何ApplicationListener相同的方式注册此监听器,例如

SpringApplication app = new SpringApplication(MyApplication.class);app.addListeners(new ShutdownListener());


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5641517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存