在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
答案 0 :(得分:1)
异步操作仅帮助您并行运行操作。您可以一次加载几件事,然后实现结果并使用数据。在您编辑的示例中,是的,异步版本会更快,因为操作将并行完成。虽然,它的速度可能与一次批量保存的速度相同:
boolean hasCaramel = false;
for (Candy candy : CandyDao.getAllCandys()) {
if ("Caramel".equals(candy.getName())) {
hasCaramel = true;
break;
}
}
所有异步操作均在请求结束时完成。如果您只是保存一件事然后返回,则性能将是相同的同步或异步。