2013-11-20 18 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傳輸覆蓋超時,但不建議。

相關問題