Scala ZIO[声明性]事务管理

Scala ZIO[声明性]事务管理,scala,transactions,zio,doobie,Scala,Transactions,Zio,Doobie,我花了很多时间在运行良好的ZIO+HTTP4S+Doobie-项目上计算事务。 如何进行适当的[声明性]事务管理?类似于Spring@Transactional的东西。 我读了这篇非常好的帖子,但讽刺的是,我确实遇到了所谓的春季挑战:弄不清楚如何/在哪里准确地处理交易:) 同样尝试过,甚至在问题下输入了a,其中我的PR(在我的叉子上)似乎表示单个transact调用被分组在单个事务中 在ZIO引用列表中,我不明白为什么资源在main中只“使用”一次,然后围绕逻辑调用transact。好吧,我理解

我花了很多时间在运行良好的
ZIO+HTTP4S+Doobie
-项目上计算事务。 如何进行适当的[声明性]事务管理?类似于Spring
@Transactional
的东西。 我读了这篇非常好的帖子,但讽刺的是,我确实遇到了所谓的春季挑战:弄不清楚如何/在哪里准确地处理交易:)
同样尝试过,甚至在问题下输入了a,其中我的PR(在我的叉子上)似乎表示单个
transact
调用被分组在单个事务中

在ZIO引用列表中,我不明白为什么资源在main中只“使用”一次,然后围绕逻辑调用
transact
。好吧,我理解它为什么会起作用,但我看不到任何“策略”或其他任何东西可以让我处理第一个ZIO effekt中的错误,让我控制第二个flatmapped effects的情况

或者如何确保HTTP4S请求将发生一个事务

或者是一个错误处理程序,它获得了一个
@RequiresNew
,以便在数据库中的某个位置实际存储有关错误的信息,即使之前的所有逻辑都已正确回滚

我不介意写一些关于这方面的东西来帮助别人,但我显然还有更多的东西要学。关于杜比和兹拉耶斯等等


如果我在这里明显遗漏了什么,请告诉我:-)

你能写一些例子吗?您试图实现的是不清楚如何确保一个HTTP4S请求将发生一个事务。-只需编写一次transact-它比bean magic更简单、更明确| | | | |让我处理第一个ZIO effekt中的错误,让我控制第二个flatmapped效果的情况…-您可以使用recoverWith/handleWith之类的方法来处理a(Z)ioo中的错误。请您写一些示例好吗?您试图实现的是不清楚如何确保一个HTTP4S请求将发生一个事务。-只需编写一次transact-它比bean magic更简单、更明确| | | | |让我处理第一个ZIO effekt中的错误,让我控制第二个flatmapped效果的情况…-您可以使用recoverWith/handleWith之类的方法来处理(Z)IO中的错误