处理 objectify 中的异步保存错误
Handling Async save errors in objectify
我有一个对象,用于在 App Engine 上使用 Objectify 进行临时数据存储。
当我保存我的实体时,如果它抛出 ApiProxy.RequestTooLargeException
我会清除一些数据并重新保存。我想异步执行此操作,但不知道如何捕获和处理异步保存错误。
同步保存效果很好,像这样:
private void save() {
try {
ofy().save().entity(this).now();
} catch (ApiProxy.RequestTooLargeException e) {
clearOldData();
save();
}
}
如何使用异步保存做类似的事情?
只有在调用 now()
方法时才会出现异常。因此,保存 Result<?>
对象并在准备好时调用 now()
。如果需要,请使用过滤器和本地线程;这实际上就是 Objectify 所做的。
如果您正在寻找 callback-style 异步接口,它们不存在。而且它们不会比将 Result<?>
保留到请求结束并自己完成它们更好。
我有一个对象,用于在 App Engine 上使用 Objectify 进行临时数据存储。
当我保存我的实体时,如果它抛出 ApiProxy.RequestTooLargeException
我会清除一些数据并重新保存。我想异步执行此操作,但不知道如何捕获和处理异步保存错误。
同步保存效果很好,像这样:
private void save() {
try {
ofy().save().entity(this).now();
} catch (ApiProxy.RequestTooLargeException e) {
clearOldData();
save();
}
}
如何使用异步保存做类似的事情?
只有在调用 now()
方法时才会出现异常。因此,保存 Result<?>
对象并在准备好时调用 now()
。如果需要,请使用过滤器和本地线程;这实际上就是 Objectify 所做的。
如果您正在寻找 callback-style 异步接口,它们不存在。而且它们不会比将 Result<?>
保留到请求结束并自己完成它们更好。