1
我們已經開始得到了很多DatastoreTimeoutException的最近這個基本的查詢:DatastoreTimeoutException App Engine中的基本查詢
select id from Later where at < '2013-07-04' limit 500 (Some Pseudo SQL)
在代碼中,它看起來像:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("Later").setKeysOnly();
Filter f = new FilterPredicate("at",FilterOperator.LESS_THAN, new Date());
query.setFilter(f);
query.addSort("at", SortDirection.DESCENDING);
PreparedQuery pq = datastore.prepare(query);
return pq.asList(FetchOptions.Builder.withLimit(500));
表有aprox的。 150萬個實體。這是正常的數據存儲行爲嗎?
更新:如果我們刪除過濾器,它會更好地工作。當然,我們需要過濾器,因此長遠來看這不是一個解決方案。
一個星期或2個星期前,數據存儲區超時有問題。你最近是否仍然遇到這個問題? –
是的,我們現在正在製作它。 – Okku
這是否發生在正常的Web請求中?即是否正在踢入30秒的響應限制?如果這是一個面向客戶的請求,也許可以做更小的獲取大小? (不是解決方案,而是另一種選擇)。如果您在任務中運行查詢(具有10分鐘的限制),請查看是否獲得相同的超時時間。 –