2013-11-20 19 views
1

我有GAE后端Android应用程序。我遇到了java.net.SocketTimeoutException,可能是由于获取GAE的时间限制。在调试GEA时烦人的SocketTimeoutException

但是,我在那里做的操作是将相当简单的对象写入数据存储并将其返回给用户。调试时间,日食产生使得它太长我猜...

什么是增加超时时间等使用方式:

Gameendpoint.Builder builder = new Gameendpoint.Builder(AndroidHttp.newCompatibleTransport(), new JacksonFactory(), null); 
builder = CloudEndpointUtils.updateBuilder(builder); 
Gameendpoint endpoint = builder.build(); 

try { 
    Game game = endpoint.createGame().execute();; 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

你解决了吗?如果是这样,怎么样? – PSchuette

+0

有点没有。发布答案。 –

回答

0

嗯,这是一个愚蠢的错误。这种操作的限制是30秒,这应该足够了。但是,在createGame()内部存在无限循环。我有一种感觉,GAE框架可以识别这种情况,并在实际经过30秒之前导致SocketTimeoutException。

0

端点上的套接字有2000毫秒超时。如果您正在运行短进程,那么这是充足的时间:快速查询(连续查询以不同方式处理)或写入操作。如果你重载过程并尝试做太多(我的问题),那么你会得到这个错误。您需要做的事情是运行许多不同的端点操作,而不是一次尝试处理太多。如果需要,您可以使用HTTP传输覆盖超时,但不建议。

相关问题