代码之家  ›  专栏  ›  技术社区  ›  SharpBCD

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

  •  0
  • SharpBCD  · 技术社区  · 7 年前

    当我在本地运行时,一切都很好。当我在AppEngine上部署应用程序时,出于某种原因,最简单的请求会得到超时错误。我甚至实现了retry,虽然我取得了一些进展,但仍然不能很好地工作。

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

    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)

    1 回复  |  直到 7 年前
        1
  •  0
  •   Guillermo Cacheda kapaweb    7 年前

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

    另一条关于 请求在应用程序中启动新进程 很可能是由实例关闭引起的。当新实例开始为请求提供服务时,将显示此消息。因为你的案子因为 错误203 ,新实例正在取代它,为您的新请求提供服务并发送该消息。

    为什么它在Google云引擎(或本地)上工作的一个解释是,导致错误的App引擎组件在这些环境中不存在。

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

    推荐文章