回滚多用途python脚本的最佳实践

时间:2018-05-14 18:25:36

标签: python database design-patterns

如果标题有点模棱两可,我很抱歉。让我解释一下我的意思: 我有一个python脚本,它做了一些事情:在MySQL表中创建一行,将一个json文档插入一个MongoDB,更新本地文件中的东西,以及其他一些主要与数据库相关的东西。事实是,我希望整个操作是原子的。手段 - 如果在我提到的过程中有任何失败,我想要回滚我所做的一切。我想为每个'create'函数实现一个回滚函数。但我很想听听你对如何制作某种链接操作列表的意见,如果任何节点失败,我想放弃在此过程中完成的所有更改。 你会如何设计这样的东西? Python中是否有用于此类事物的库?

1 个答案:

答案 0 :(得分:0)

您应该将每个操作实现为可逆,并且即使原始操作失败,也可以执行可执行的反向操作。然后,如果您有任何失败,则执行每次撤消。