当前位置: 首页 > 知识库问答 >
问题:

AppEngine标准检测关机时的Spring-Boot

华峰
2023-03-14

使用Spring Boot 2.0.0。在Google Appengine标准上发布。使用自动伸缩,但试图控制实例的创建/销毁。需要能够做一些清理,并希望记录这些事件。

Spring Boot中的任何方法,如@PreDestroy或ContextClosedEvent,似乎都不适用于GAE。

根据文档,应该可以通过添加关机钩子来检测实例的关机。

文档LifecycleManager.ShutdownHook。

试过把它放在几个地方都没有成功。

例如@bean:

@Bean
public LifecycleManager lifecycleManager() {

    LifecycleManager lifecycle_manager = LifecycleManager.getInstance();

    lifecycle_manager.setShutdownHook(new ShutdownHook() {

        public void shutdown() {

            LifecycleManager.getInstance().interruptAllRequests();

            log.error("Shutdown " + getClassSimpleName() + ".");

        }

    });

    log.warn("Created shutdown hook.");

    return lifecycle_manager;

}

关机钩子安装正确,但在实例关闭时不会被激发。

共有1个答案

爱炯
2023-03-14

正如您可以在Google问题跟踪器中读到的:

关机钩子只适用于标准运行时(...)上的手动伸缩实例。

关机钩根本不工作在自动和基本的缩放。

 类似资料:
  • 我试图在本地appengine模拟器上运行我的代码,但我仍然得到错误信息,即ServletInitializer类不是javax.servlet.servlet有启动时的日志 我已经创建了ServletInitializer类,类似于教程和示例项目https://github.com/googleCloudplatform/get-started-java/blob/master/appengin

  • 没有办法(不管它有多“黑”)检测Java的已写入,以便在发生这种情况时能够执行逻辑?-我目前正在使用(我们称之为)的一个自定义子类,它在

  • 正在尝试使用CLI将ssh插入AppEngine实例。我有正确的命令,但不确定如何为标准实例允许ssh,或者这根本不可能。我是Gcloud(AWS Guy)的新手。他们的文档在实例类型和允许或不允许的方面不是很好。有人对此有什么建议吗。提前道谢!

  • 描述 MG995伺服是一种简单的,常用的标准伺服器,可满足您的机械需求,例如机器人头部,机器人臂部。 它带有一个标准3针电源和控制电缆,便于使用,金属齿轮用于高扭矩。RJ25适配器还可帮助您轻松地将伺服器与Me底板或Makeblock Orion连接起来。 尺寸图 机械参数 尺寸:40.4*19.9*37.5mm 重量:58g 齿轮类型:5金属齿轮 边界角度:180°±5° 轴承:DUAL BB

  • 我一直在使用webflux启动程序()处理spring-boot。我创建了一个返回无限通量的简单控制器。我希望发布者只做它的工作,如果有一个客户端(订阅者)。假设我有一个这样的控制器: 现在,当我尝试运行该代码并使用Chrome访问endpointhttp://localhost:8080/时,就可以看到数据了。但是,当我关闭浏览器时,while-loop将继续,因为没有启动cancel事件。如何

  • 本页列出了所有Apache遵守的相关标准,并伴有简要描述。 除了下面列出的参考信息,下列资源也值得看看: http://purl.org/NET/http-errata - HTTP/1.1 勘误表 http://www.rfc-editor.org/errata"http://ftp.ics.uci.edu/pub/ietf/http/"> http://ftp.ics.uci.edu/pub/