【发布时间】:2016-09-13 14:19:24
【问题描述】:
我的 PUT 请求太长而无法运行。我想让它异步,使用延续(等待/承诺功能)。
我创建了一个修改我的实体的工作 (LongJobThatUpdatesThePassedEntity)
public static void myLongPut(@required Long id, String someData) {
MyJpaModel myJpaModel = MyJpaModel.findById(id);
//straightforward modifications
updateMyJpaModel(someData);
myJpaModel.save();
//long processing modifications to entity, involving WS calls
Promise<String> delayedResult = new LongJobThatUpdatesThePassedEntity(id).now();
await(delayedResult);
render(myJpaModel.refresh());
}
如何管理数据库事务?
在工作调用之前是否有提交?
作业有自己的数据库事务?
如果在回滚的LongJobThatUpdatesThePassedEntity 中存在问题,在updateMyJpaModel 中所做的修改是否会保留?
我可以在最后做render(myJpaModel.refresh()) 吗?
它会包含直截了当的修改和冗长的修改吗?
谢谢
【问题讨论】:
标签: jpa asynchronous playframework async-await playframework-1.x