【发布时间】:2020-06-15 10:05:25
【问题描述】:
假设一个示例 API 控制器验证 JWT,然后使用 json 数据在用户之间创建事务 在这样的方法中,在整个方法执行过程中会发生多个 SELECT、UPDATE、INSERT 和 DELETE,例如获取用户资金、提取资金到临时“钱包”然后将资金添加到接收方
Say 方法会像这样进行数据库交互:1.SELECT -> 2.UPDATE -> 4.CREATE -> 5.SELECT -> 6.UPDATE -> SELECT
但如果服务器/应用程序在查询 n.4 处崩溃,则 n.6 交互将永远不会完成。
我的问题是:如何确保方法完成或将 db 恢复到崩溃前的初始状态?
我的想法是为我需要的数据创建一个“快照”,以防发生崩溃,然后将主表恢复为快照状态。如果可能的话,处理切换回该快照状态以及如何检测服务器崩溃的解决方案
【问题讨论】:
-
阅读数据库事务
-
什么意思?我在问如何确保数据在崩溃时恢复而不在代码中放置太多绷带
-
那么你应该阅读有关交易的内容
-
开始一个事务,做你所有的数据写入/更新/删除提交事务。如果提交没有发生,那么数据库实际上并没有更新docs.microsoft.com/en-us/dotnet/api/…
-
好的,谢谢你会阅读这个