8

我的对预热请求的理解是,它是“准备”新的前端/后端实例(或者它们仅适用于前端?)以准备在不久的将来使用的请求。

我的理解对加载请求的理解是,它是一个启动新实例的请求,因为现在。因此,自己应该提前尝试“预热”实例,以减少加载延迟。

所以我的第一个问题是:我对这些请求类型的理解是否正确,如果不是(或者我在这里遗漏了任何值得注意的内容),那么请首先澄清/纠正我!

接下来我很好奇:如何让 GAE 服务器端代码“处理”预热或加载请求?是否有我需要实现的特定接口(在 Java EE 领域,您也需要实现ServiceContextListenerweb/app 容器在部署/启动应用程序时查找和调用的接口)。如果是这样,这样做的 API 是什么?否则,GAE 应用程序的“入口点”是什么?基本上我想知道什么类/方法应该处理预热/加载请求。

最后,我问:在启动过程中处理预热请求和加载请求之间应该有哪些(一般)活动?他们不会一样吗?我问是因为我对使用 GAE 的“始终开启”高级功能感兴趣,并且不确定我应该将我的启动代码放置在哪里,以用于将始终开启的实例。

4

1 回答 1

8

预热请求是一种让实例准备好处理流量的方法,这样您的用户就不必等待 Java 或 Python 应用程序加载其所有导入,然后执行任何特定于实例的初始化(包括缓存预热)它需要做。预热请求适用于前端和后端。

你如何做到这一点的细节取决于语言,但基本上你需要一个处理程序来处理请求,/_ah/warmup而不是产生 500 响应。有关详细信息,请谷歌搜索“App engine warmup request”并选择相应的结果。预热请求默认为 Java 启用,但对于 Python,您必须在app.yaml. 我还没有为 Go 尝试过它们。

据我所知,“加载请求”只是实例必须处理的第一个请求的名称。https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Request有一些细节。

于 2012-10-24T04:27:07.830 回答