[英]Google Appengine Datastore Timeout Exception
我們正在從最多30k的數據存儲中獲取名稱空間列表。
提取名稱空間的cron每天運行。 但是有一天它可以正常工作,而另一天它會拋出數據存儲超時異常。
com.google.appengine.api.datastore.DatastoreTimeoutException:數據存儲操作超時,或者數據暫時不可用。
相關代碼:
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
FetchOptions options = FetchOptions.Builder.withChunkSize(150);
Query q = new Query(Entities.NAMESPACE_METADATA_KIND);
for (Entity e : ds.prepare(q).asIterable(options)){
// A nonzero numeric id denotes the default namespace;
// see Namespace Queries, below
if (e.getKey().getId() != 0){
continue;
}else{
namespaces.add(e.getKey().getName());
}
}
可能是什么問題?
根據官方文件:
數據存儲操作超時時,將引發DatastoreTimeoutException。 當您嘗試放置,獲取或刪除太多實體或具有太多屬性的實體,或者數據存儲區過載或出現問題時,可能會發生這種情況。
這意味着數據存儲在處理您的請求時遇到麻煩。 嘗試處理該錯誤,例如:
import com.google.appengine.api.datastore.DatastoreTimeoutException;
try {
// Code that could result in a timeout
} catch (DatastoreTimeoutException e) {
// Display a timeout-specific error page
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.