0

当我在本地运行时,一切都很完美。当我在 AppEngine 上部署我的应用程序时,出于某种原因,最简单的请求会出现超时错误。我什至实施了重试,虽然我取得了一些进展,但它仍然无法正常工作。

我认为这并不重要,因为我在本地运行时没有问题,但这是我刚刚用于请求重试模块的代码:

request({
        url: url,
        maxAttempts: 5,
        retryDelay: 1000, // 1s delay 

    }, function (error, res, body) {
        if (!error && res.statusCode === 200) {
            resolve(body);
        } else {
            console.log(c.red, 'Error getting data from url:', url, c.Reset);
            reject(error);
        }
    });

有什么建议么?

另外,我可以在调试中看到这个错误:

此请求导致为您的应用程序启动一个新进程,从而导致您的应用程序代码首次加载。因此,与您的应用程序的典型请求相比,此请求可能需要更长的时间并使用更多的 CPU。

────────────────────

处理此请求的进程意外死亡。这可能会导致一个新进程被用于对您的应用程序的下一个请求。(错误代码 203)

4

1 回答 1

0

error 203意味着 Google App Engine 检测到 RPC 通道已意外关闭并关闭实例。请求失败是由于实例关闭造成的。

关于请求导致您的应用程序中启动新进程的另一条消息很可能是由实例关闭引起的。当新实例开始为请求提供服务时,会出现此消息。由于您的实例因 而死亡error 203,新实例正在取代它,为您的新请求提供服务并发送该消息。

为什么它在 Google Cloud Engine(或本地)上工作的解释是因为导致错误的 App Engine 组件在这些环境中不存在。

最后,如果您仍然有兴趣解决 App Engine 的问题并有权获得 GCP 支持,我建议您联系技术支持团队。这个问题似乎是 App Engine 独有的,但我无法进一步回答原因,这就是我建议与支持人员联系的原因。他们有更多可用的工具,并且能够更周到地帮助调查问题。

于 2018-08-09T14:23:45.983 回答