django - 为什么没有回滚钩子?
问题描述
回滚钩子比提交钩子更难实现健壮,因为很多事情都可能导致隐式回滚。例如,如果您的数据库连接因为您的进程被杀死而没有机会正常关闭,那么您的回滚钩子将永远不会运行。但是有一个解决方案:与其在原子块(事务)期间执行某些操作,然后在事务失败时撤消它,而是使用 on_commit() 将其延迟到事务成功之后才执行。撤销一开始从未做过的事情要容易得多!enter code here
解决方案
推荐阅读
- pysnmp - PySNMP:接收 V3 陷阱 - 引擎 ID
- javascript - 如何从 Firebase 的 JavaScript 查询创建复选框列表
- c# - 在哪里调用 SendMessageUpwards
- javascript - 如何在 Ruby on rails 项目中的 Javascript 中创建任务
- javascript - 无法使用“文件名:”更改“protractor-jasmine2-html-reporter”中的文件名
- django - 如何在 jenkins 控制台日志上显示 appspec 文件的日志?
- php - Jwt 身份验证问题 - 凭据无效
- asp.net-core - 升级到 ASP.NET Core 3.1,收到有关 System.Text.Json 的错误
- windows - POWERSHELL - WINDOWS REGISTRY - 如何使用带有“*”的路径,例如 'hkcr:\*\shell'
- java - Maven 因“缺少工件 jdk.tools:jdk.tools:jar:1.6”而失败