如何通过AppEngine上的Node.Js通过http请求获取数据?

时间:2018-08-06 02:17:33

标签: google-app-engine httprequest google-appengine-node

在本地运行时,一切都完美。由于某种原因,当我在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);
        }
    });

有什么建议吗?

此外,我可以在Debug中看到此错误:

  

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

     

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

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

1 个答案:

答案 0 :(得分:0)

error 203表示Google App Engine检测到RPC通道意外关闭,并关闭了实例。请求失败是由实例关闭引起的。

有关请求导致应用程序中启动新进程的另一条消息很可能是由于实例关闭而引起的。当新实例开始处理请求时,将显示此消息。由于您的实例因error 203而垂死,新的实例将取代它,服务您的新请求并发送该消息。

为什么要在Google Cloud Engine(或本地)上运行是因为这些环境中不存在引起错误的App Engine组件。

最后,如果您仍然对解决App Engine问题感兴趣,并且entitled to GCP support,我建议contacting with the Technical Support team。这个问题似乎是App Engine所独有的,但是我无法进一步回答原因,这就是为什么我建议与支持人员联系。他们有更多可用的工具,将能够更周到地帮助调查问题。

相关问题