java - 对象化 GAE/J Google App Engine : Understanding asynchronous load

标签 java database google-app-engine asynchronous objectify

我是 Objectify 的新手,我不明白某些事情(愚蠢的事情)。 我正在构建一个 Restful Web 服务(带有 reSTLet)并且我正在创建一个 JSON 响应。所以:

Party party;
    for(Ref<Game> jref : party.games)
    {
        JSONObject object = new JSONObject();

        try{
            Game gAux = jref.get(); //If the value ref is not load, the excetion throws
        }
        catch(IllegalStateException e)
        {
        //Is asynchronous
            jref = ObjectifyService.ofy().load().ref(jref);
        }

        serializeGame(jref.get(), object);
    }

好的,代码很简单,我得到一个 Game 对象,然后将它序列化为 JSON 对象,然后发送响应。 但我不明白异步 load() 是如何工作的。

如果 load().ref(jref) 是异步的:

  1. 它返回什么?因此,如果 load().ref() 返回一个“ future ”对象的空对象:
  2. 当我使用该对象时发生了什么? (我使用空值对象?,一个“还在等待”的对象)?
  3. 我怎么知道对象已经准备好了? (一些听众,处理程序?)使用它?
  4. 额外:如果没有任何方式知道对象何时准备就绪,我该如何同步加载 ref?

非常感谢

最佳答案

这里回答了这个问题:

https://groups.google.com/forum/?fromgroups=#!topic/objectify-appengine/8dLAbSWJVB4

“简短的回答”是 Ref/Map/List 是异步外观,当您尝试具体化 POJO 时它们会同步阻塞。就像 Future 一样。

关于java - 对象化 GAE/J Google App Engine : Understanding asynchronous load,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586067/

相关文章:

java - Java 中与 Socket 一起使用时可序列化的外部类

java - 在 NetBeans 中使用 Vaadin?

java - 从十进制度转换为六十进制度

sql-server - 授予对 View 的读取访问权限,但不授予对其他数据库的基础表的读取访问权限

google-app-engine - 如何回滚 Google App Engine 中的 appcfg?

Java 泛型类型利用

mysql - 有没有办法为多对多关系制作汇总表?

google-app-engine - 下载旧版本的 Google App Engine SDK

java - 如何使用java.net.URLConnection在php web表单中获取验证码图像

javascript - DynamoDB 和 Node Js : Unexpected token h