如何配置预热请求以避免应用日志中的404错误?

7 投票
1 回答
1391 浏览
提问于 2025-04-16 09:27

我在我的应用中启用了预热请求,在app.yaml文件中添加了以下指令。

inbound_services:
- warmup

查看应用的日志,我看到有几条这样的记录:

1. 01-05 02:49PM 50.037 /_ah/warmup 404 300ms 280cpu_ms 1kb 查看详情

0.1.0.3 - - [05/Jan/2011:05:49:50 -0800] "GET /_ah/warmup HTTP/1.1" 404 1188 

2. 我 01-05 02:49PM 50.336

这个请求导致为你的应用启动了一个新进程,
并因此使你的应用代码第一次被加载。
所以这个请求可能会比你应用的普通请求
花费更长的时间并使用更多的CPU。

这很合理,因为预热请求的文档中提到:

这会导致App Engine的基础设施向/_ah/warmup发送GET请求。你可以在这个目录中实现处理程序,执行一些特定于应用的任务,比如预先缓存应用数据。

据我所知,ah是一个保留的URL,也就是说,脚本处理程序和静态文件处理程序的路径永远不会与这些路径匹配!

我是不是应该简单地添加ah/warmup路由,并把它关联到一个空的网页处理程序,比如说?这样做对吗?

1 个回答

4

/_ah/ 开头的链接是可以正常工作的,尽管文档可能让你觉得不是这样。

所以,是的,只需把一个处理程序映射到 /_ah/warmup,这样就能让预热请求正常工作。不过,我不太确定使用一个空的处理程序能带来多少好处。一般来说,你会想要导入所有重要的模块,并进行一些缓存预热,这样你的应用才能快速响应。

撰写回答