在Quarkus和小黑麦叛变案中工作,我不知道如何处理赔偿。
我有一份员工名单,我必须更新数据库中的所有员工。数据访问对象(EmployeeDao)具有以下方法:public Uni
此外,我必须返回一个Uni
public Uni<Boolean> updateEmployees(List<Employee> employees) {
for(Employee employee: employees) {
//TODO: Execute or compensate
}
}
我的问题是,如何逐个迭代执行更新过程并处理补偿?
如果任何员工更新过程失败,我想尝试几次,然后,如果我无法更新员工,我必须在返回任何响应之前撤消所有员工。其思想是保持数据库处于一致状态。
如何利用兵变处理全部赔偿?
如果我理解正确,那么您需要执行一组异步操作并将它们组合起来。为此,您可以执行以下操作:
List<Uni<?>> list = new ArrayList();
for(Employee employee: employees) {
Uni<Void> uni = update(employee);
list.add(uni);
}
return Uni.combine().all().unis(list)
.with(list -> { /* all employees have been updated */ return true; })
.onFailure().call(failure -> {
Uni<?> uni = compensate();
return uni.onItem().transform(x -> false);
});
第一个外观为每个更新收集Unis。然后我们把这些结合起来。如果一切都很好,我们就很好,回归真实。如果发生了不好的事情,我们将进行补偿并返回false。
问题内容: 我正在尝试为局部变量创建注释。我知道我不能在生成的字节码中保留注释,但是我应该能够在编译时通过执行以下操作来访问信息: 仅,当我在以下指定的受支持类型中指定包含“垃圾”的ProcessorFactory时,apt或javac不会对此进行处理: 但是,当我之前移动@Junk批注时,它将起作用 有想法或解决方法? 问题答案: 做了一些快速测试并进行了一些搜索,看起来好像并没有真正被支持。
这是我的代码: 我收到两条编译信息: 我不太清楚,因为返回一个。。。 有什么想法吗?
希望创建一个DynamoDB全局表来存储客户信息。我的问题是,我目前的模式是监听此表上的更改,并使用Lambda触发器发送电子邮件更新。 i、 e.您的个人资料信息已更改。如果不是你。。 我现在是否需要在每个区域中使用该Lambda?数据复制是否意味着每个区域都会触发该Lambda?
问题内容: 先前曾问过一个有关如何覆盖环境指令中定义的变量的问题,看来这是不可能的。 我想在一个阶段中设置一个变量,并使其可用于其他阶段。在声明性管道中,似乎唯一的方法是在script {}块中。 例如,我需要在结帐后设置一些变量。因此,在结帐阶段结束时,我有一个script {}块来设置这些var,并且可以在其他阶段访问它们。 这可行,但感觉不对。并且出于可读性考虑,我更愿意在管道的顶部声明这些
我有这么一个需求,已有一个项目已经搞了一年多了 我现在想把这个项目开源,发布到 github 上,但是我不想把以前的 git 提交记录让别人看到,只想看到从今天之后的 commit 有办法限制吗? 比如我现在的代码在自建的 gitlab,想发布一份到 github,但是 github 上的,我只希望被人看到的 git log 只是从今天开始的,以往的看不到
问题内容: 在PHP中,你只能将其用于和(查询字符串)变量。Python中的等效功能是什么? 问题答案: 假设你正在发布带有以下内容的html表单: 如果使用原始: 如果使用或: 使用: : : 如果使用或,还可以直接使用参数定义处理程序函数: 因此,你实际上必须选择这些框架之一。