在Quarkus和SmallRye Mutiny工作,我不知道如何处理补偿。
我有一个员工列表,我必须更新数据库中的所有员工。数据访问对象 (EmployeeDao) 具有以下方法:public Uni<Boolean> update(Long id, String name, Long deptId)
. 它期望接收员工的字段。
另外,我必须返回一个Uni<Boolean>
通知所有更新是否正常。如下所示:
public Uni<Boolean> updateEmployees(List<Employee> employees) {
for(Employee employee: employees) {
//TODO: Execute or compensate
}
}
我的问题是,我怎样才能一一迭代执行更新过程并处理补偿?
如果任何员工更新过程失败,我想尝试几次,然后,如果我无法更新员工,我必须在返回任何响应之前撤消所有员工。这个想法是使数据库保持一致的状态。
如何使用 Mutiny 处理全部补偿?