非同期に呼び出して結果を取得することも出来ます。
英語版ドキュメントはこちら。
その1はこちら。
Working with the Async Datastore Service (非同期データストアサービスの使用)
非同期データストアAPIでは、AsyncDatastoreServiceインターフェイスのメソッドを使ってデータストア呼び出しを行います。このオブジェクトはDatastoreServiceFactoryクラスのgetAsyncDatastoreService()クラスメソッドを呼び出して
取得します。
import com.google.appengine.api.datastore.AsyncDatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; // ... AsyncDatastoreService datastore = DatastoreServiceFactory.getAsyncDatastoreService();
AsyncDatastoreServiceは、結果の取得を後の時点でブロックすることが出来るFutureを直ちに返すメソッドを除いて、DatastoreServiceと同じ操作をサポートしています。例として、DatastoreService.get()は1つのエンティティを返しますが、AsyncDataStoreService.get()はFuture<Entity>を返します。
// ...
Key key = KeyFactory.createKey("Employee", "Max");
// Async call returns immediately
Future<entity> entityFuture = datastore.get(key);
// Do other stuff while the get operation runs in the background...
// Blocks if the get operation has not finished, otherwise returns instantly
Entity entity = entityFuture.get();
ノート:get()メソッドを呼び出すまでは例外はスローされません。このメソッドの呼び出しは非同期操作の成功/不成功の検査に利用できます。
AsyncDatastoreServiceを取得しているけれども同期した操作の実行を必要とする場合、適切なAsyncDatastoreServiceのメソッドを呼び出してからすぐにresultのブロックをかけます。
// ...
Entity entity = new Employee("Employee", "Alfred");
// ... populate entity properties
// Make a sync call via the async interface
Key key = datastore.put(key).get();
インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/
 
 
0 件のコメント:
コメントを投稿