在编写Cloud Run服务时,我们将开发一个容器,该容器侦听PORT
环境变量以处理传入的HTTP请求。该容器实例可以处理并处理该请求,然后在结束原始请求后会保留更长的时间,以防万一还有其他请求到达。如果没有其他要求,则GCP 关闭容器。我在这方面有一个疑问。
是否有钩子,信号或其他指示表明容器正在容器内关闭?
在我的示例中,我的容器想要干净地结束。也许它想关闭连接或执行一些快速的缓存刷新。
答案 0 :(得分:2)
here已找到有关Cloud Run的大量常见问答的常见问题解答。在该FAQ中有一个内容为:
Cloud Run服务的终止信号是什么?
当前, Cloud Run终止容器,同时通过unix信号将其缩放为零 9(SIGKILL)。 SIGKILL不能被应用程序捕获(捕获)。 因此,您的应用程序应该可以被突然终止。
一个相关且重要的条目也显示为:
我的服务何时会扩展为零?
Cloud Run不保证将其保留多长时间。 服务“热情”。这取决于容量和Google的 实施细节。
某些用户看到他们的服务可以保持长达一个小时甚至更长的时间。
我觉得很有趣,这个故事似乎是直接的SIGKILL
。如果我们将Docker用作容器环境的基础,则可以阅读有关docker stop的信息,这似乎是彻底停止容器的方式。在它自己的描述中说:
容器内的主进程将收到SIGTERM,然后 宽限期,SIGKILL。
这似乎表明对于正常 Docker容器停止,运行该容器的进程将收到一个信号。
答案 1 :(得分:0)