我正在尝试命名一种方法,该方法仅在输入数据为 new 时才对关系数据存储执行更新,这意味着没有现有密钥或该值与前一个不同。动机是不触发标准更新引发的数据更改事件。
此类更新的正确术语是什么?示例签名是什么?
答案 0 :(得分:2)
因此,让我们澄清您的陈述"仅执行更新...如果输入数据是新的"。
如果您只关注关系键,仅在键更改时进行更新,那么您实际上并不只是执行...如果。 .. new",因为密钥的值可能已更改。
但是,如果你真的可能有两次完全相同的值,而你第二次没有做任何事情,那么系统幂等。 幂等 apis在被调用后确保状态,在重播情况下不会改变。
非幂等调用的快速示例(由于API设计)
incrementCount();
虽然是幂等调用的示例(使用API允许)
setCount(5);
请注意,不执行任何操作不是 idempotent api 的功能,而是对幂等调用执行安全的优化。基本上,使用幂等api,您可以执行以下操作
if (currentCommand.equals(lastCommand)) {
return;
}