in
当spring-boot应用程序在本地运行时,这可以正常工作。
当aapp被部署到关键的云代工厂时,最新的(java-buildpack-v3.5.1.zip)java buildpack作为jar而cf cli用于停止app,它表明onContextClosed方法被触发,它不会等待它成功完成。
有什么建议,想法在这里发生了什么?
答案 0 :(得分:1)
这实际上是前面解释过的案例的一个特例。虽然钩子开始执行,但在操作系统关闭的情况下,可以在它完成之前终止。在这种情况下,一旦给出SIGTERM,O / S就等待进程终止指定的时间。如果进程未在此时间限制内终止,则O / S通过发出SIGTERM(或Windows中的对应方)强制终止进程。因此,当关闭钩子执行的一半时,可能会发生这种情况。
答案 1 :(得分:1)
引用代码库,指示将SIGKILL发送到JVM https://github.com/cloudfoundry/warden/blob/master/warden-protocol/lib/warden/protocol/pb/stop.proto#L9-L17
之后的超时时间