在物化中处理异步保存错误

时间:2016-01-05 14:39:02

标签: java google-app-engine objectify

我有一个对象用于在App Engine上使用Objectify进行临时数据存储。

当我保存我的实体时,如果它抛出一个ApiProxy.RequestTooLargeException我清除了一些数据并重新保存。我想要异步执行此操作,但无法解决如何捕获和处理异步保存错误。

同步保存它工作正常,如下所示:

private void save() {
    try {
        ofy().save().entity(this).now();
    } catch (ApiProxy.RequestTooLargeException e) {
        clearOldData();
        save();
    }
}

如何使用异步保存执行类似的操作?

1 个答案:

答案 0 :(得分:1)

调用now()方法时只会出现异常。因此保存Result<?>对象并在准备好后调用now()。如果需要,可以使用过滤器和本地线程;这实际上是Objectify所做的。

如果您正在寻找回调式异步接口,它们就不存在了。他们不会比持有Result<?>直到请求结束并自己完成它们更好。