提问人:npr_se 提问时间:9/28/2023 最后编辑:npr_se 更新时间:9/28/2023 访问量:25
可以从错误中恢复的功能的术语是什么?
What is the term for a function that can resume from error?
问:
我正在为程序函数可以具有的属性寻找一个单词术语。
常见于长时间运行的 SQL 脚本,可能会失败或崩溃:如果编写时没有此属性,则此类脚本可能会在中途崩溃。一旦这样的脚本这样做了,唯一的解决办法就是找到程序崩溃的位置,然后手动调整代码以从该点开始。
但是,如果使用该属性编写,则可以简单地重新启动崩溃的脚本(例如,由于断电),并导致与运行完成时相同的状态。
例如,执行以下操作:
INSERT INTO `customers` (`id`, `name`) VALUES ('1', 'Stephenson')
INSERT INTO `customers` (`id`, `name`) VALUES ('2', 'Boulton')
对:
INSERT INTO `customers` (`id`, `name`) VALUES ('1', 'Stephenson') ON DUPLICATE KEY UPDATE `name`='Stephenson'
INSERT INTO `customers` (`id`, `name`) VALUES ('2', 'Boulton') ON DUPLICATE KEY UPDATE `name`='Boulton'
(当然,这个例子有点病态,因为只有两条记录,但如果有数百万条,那就更有意义了)。
这是什么意思?
答:
0赞
npr_se
9/28/2023
#1
VLL 的评论为我指出了正确的答案,该答案在链接的 wiki 页面上显示;
其中运行函数两次或运行函数的一部分两次的结果与运行一次的结果相同。重入只要求函数不会出错,幂等性更强一些,因为它不仅不会出错,而且通过重新运行函数来“恢复”的最终结果必须与一次运行完全相同,这通常是意图。如果我的“安全”SQL在服务器崩溃并重新启动时插入了两倍于它应该在数据库中的账单量,那么即使从技术上讲“没有任何错误”,客户也会抱怨。
确切的差异相当小,与 Pleonasm 与 Tautology 平行,有很多重叠。
评论