在Objectify中异步保存/删除实体是否更快?

时间:2018-10-13 23:04:19

标签: objectify

在Objectify中异步保存/删除实体是否更快?

例如,如果更新实体并希望快速向客户返回响应,那么异步存储实体并返回成功状态会更好吗?

ofy().save().entity(thing1);         // asynchronous
ofy().save().entity(thing1).now();   // synchronous

编辑:

哪个更快?

ofy().save().entity(thing1); // asynchronous
ofy().save().entity(thing2); // asynchronous
ofy().save().entity(thing3); // asynchronous
// Return true

对:

ofy().save().entity(thing1).now();   // synchronous
ofy().save().entity(thing2).now();   // synchronous
ofy().save().entity(thing3).now();   // synchronous
// Return true

1 个答案:

答案 0 :(得分:1)

异步操作仅帮助您并行运行操作。您可以一次加载几件事,然后实现结果并使用数据。在您编辑的示例中,是的,异步版本会更快,因为操作将并行完成。虽然,它的速度可能与一次批量保存的速度相同:

boolean hasCaramel = false;
for (Candy candy : CandyDao.getAllCandys()) {
    if ("Caramel".equals(candy.getName())) {
        hasCaramel = true;
        break;
    }
}

所有异步操作均在请求结束时完成。如果您只是保存一件事然后返回,则性能将是相同的同步或异步。