而用户不活动 2 分钟获取信息"This request caused a new process to be started for your application"



我使用java和GWT在GAE上部署了我的应用程序。当我使用我的应用id sample.sampleappId.appspot.com登录我的应用程序时。在我的应用中,当我填写表格时,有很多表格,比如客户注册,如果我填写了一半的表格,我停止填写表格,在2、3分钟后,我继续填写剩余的表格,然后我点击保存按钮,然后在记录器中,我会得到类似的信息

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

我经常面对这种情况。为什么GAE抛出这个信息。

我的Appengineweb.xml:-

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>sampleappId</application>
  <version>25</version>
  <!--
    Allows App Engine to send multiple requests to one instance in parallel:
  -->
  <threadsafe>true</threadsafe>
  <instance-class>F4_1G</instance-class>

  <!-- Configure serving/caching of GWT files -->
  <static-files>
    <include path="**" />
    <!-- The following line requires App Engine 1.3.2 SDK -->
    <include path="**.nocache.*" expiration="0s" />
    <include path="**.cache.*" expiration="365d" />
    <exclude path="**.gwt.rpc" />
  </static-files>
</appengine-web-app>

有什么解决方案吗?有什么帮助吗?

这些是来自GAE基础设施的完全正常的INFO级别日志(不是WARNING或ERROR级别),表明相应的请求触发了新GAE实例的启动。

您可以在Scaling dynamic instances文档中阅读更多关于启动新实例的信息。

也有可能由于各种可能的原因,上一个实例的生命被缩短了。在开发者控制台中查看应用程序的日志,看看是否确实如此,如果是,请获取详细信息。您可能想要/需要解决这些问题。

当我看到你的另一个问题如何从谷歌应用引擎调用我的应用url时,我刚刚意识到了另一种可能性。

如果你的应用程序直接从请求处理程序中向自己发出请求,你可以创建无限递归循环,迫使GAE为每个这样的请求生成一个新实例。日志中可能不会显示任何内容,因为GAE只在为请求提供服务后(至少在python沙盒中)才记录请求。除非您在进行递归调用之前专门创建日志。最终,被阻止等待响应的实例(由于无限递归,这些实例永远不会出现)将被杀死,因为它们将超过请求截止日期。

相关内容

最新更新