google-app-engine - Google App Engine 超时?

标签 google-app-engine timeout

在 Google App Engine 应用程序中,我使用以下行从站点读取页面:

  String Url="http://...",line,Result="";

  URL url=new URL(Url+"?r="+System.currentTimeMillis());
  BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream()));

  while ((line=reader.readLine())!=null) { Result+=line+"\n"; }
  reader.close();

但是我得到了以下错误:

Uncaught exception from servlet
com.google.apphosting.api.DeadlineExceededException: This request (f5e2889605d27d42) started at 2011/09/07 03:20:41.458 UTC and was still executing at 2011/09/07 03:21:30.888 UTC.
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326)
    at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:276)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:82)
    at com.google.appengine.tools.development.TimedFuture.get(TimedFuture.java:55)
    at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:69)
    at com.google.apphosting.runtime.ApiProxyImpl.doSyncCall(ApiProxyImpl.java:177)
    at com.google.apphosting.runtime.ApiProxyImpl.access$000(ApiProxyImpl.java:56)
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:150)
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:148)
    at java.security.AccessController.doPrivileged(Native Method)

似乎花费的时间比预期的要长,如果该网站速度很慢,我该怎么办?

最佳答案

A DeadlineExceededException当您的代码处理对 Web 应用程序的请求需要超过 30 秒的处理时间时抛出。据推测,您的代码需要花一些时间来处理,因为它必须等待从其他站点接收数据的时间长度。

您可以在 task queue 上创建任务获取和处理该数据,并更改您的 Web 请求/响应流程以回复您的任务进度。

关于google-app-engine - Google App Engine 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328582/

相关文章:

java - 用于无状态后端应用程序的 Google App Cloud Endpoint API

java - 在 LAN 中运行 Jetty Web 服务器

python - 获取 gae 数据存储表中的记录总数

java - Weblogic 10 上的 EJB3 - 首次访问数据库时超时

javascript - jquery keyup 延迟被忽略

java - HttpsURLConnection.getInputStream() 是否进行自动重试?

java - GAE 数据存储 - 无法在 Windows 上以编程方式启动 LocalDevelopmentDatastore

java - 如何在现有的Java应用程序中添加Python模块

java - 当我在一个类中有多个测试时,避免 Java Selenium TestNG 超时的最佳方法是什么?

javascript - Cloud Functions for Firebase onWrite 超时