问题标签 [idempotent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7630 浏览

windows - 重复的 Windows 防火墙规则(Netsh AdvFirewall 防火墙)

我注意到当我们通过创建防火墙规则时netsh advfirewall firewall,它可以运行多次,创建多个相同的防火墙规则。

在尝试创建新规则之前,有什么方法可以检查防火墙规则是否存在?

0 投票
1 回答
1073 浏览

ansible - Ansible linefile insertafter duplicate lines

I want to fix broken sendfile support in VBox, so I need to put line in . I want to do that with ansible playbook. Specific task look like:

Problem is hapening when I need to call playbook again, and this task duplicate line . How to fix that.

0 投票
1 回答
644 浏览

java - 在有状态操作的情况下如何定义幂等行为?

在某些情况下,人们声称某些东西是“幂等的”,因为它在内存中不是有状态的,即使它的消费者效应是记录交易。

如果读取能力不必是幂等的, getNextIterator()那么是不是幂等的读取能力,因为它会增加迭代器。余额的银行请求不会是幂等的,因为该请求会创建审计日志。两个后续调用的返回结果可能相同(如果没有发生更改),但日志条目会不同。

0 投票
1 回答
1981 浏览

java - Java中如何保证Closeable接口的close()方法的幂等性?

Closeable接口是在 Java 5 中引入的,而该接口与语句AutoCloseable一起出现在 Java 7中。扩展(从 Java 7 开始)接口。try-with-resourcesCloseableAutocloseable

OCA/OCP Java SE 7 - Programmer I & II Study Guide一书中,它在第 399 页上说:

如果我们调用close()多次会发生什么?这取决于。对于实现AutoCloseable的类,要求实现是幂等的。这意味着您可以close()整天打电话,第二次及以后不会发生任何事情。[...] 对于实现 的类,Closeable没有这样的保证。

因此,根据本文,实现AutoCloseable需要是幂等的,而那些Closeable不是。现在,当我查看AutoCloseabledocs.oracle.com 上的界面文档时,它说:

请注意,与 的close方法不同Closeable,此关闭方法不需要是幂等的。换句话说,close多次调用此方法可能会产生一些可见的副作用,Closeable.close这与多次调用必须没有效果不同。

现在这与书中所写的相反。我有两个问题:

(1) 什么是正确的?docs.oracle.com 上的文档还是书?这两个接口中的哪一个需要幂等性?

(2)无论哪一个需要幂等 - 我是对的,Java实际上根本没有办法确保它是幂等的吗?如果是这样,close幂等方法的“要求”是程序员应该做的事情,但我永远不能确定使用该接口的人确实做到了,对吧?在这种情况下,幂等性只是预言机的一个建议,对吗?

0 投票
1 回答
990 浏览

javascript - 纯函数是幂等的吗?

每个纯函数都是幂等的吗?

如果我没有在官方Angular.js 教程中看到这个声明,我就不会问这么疯狂的问题:

过滤函数应该是纯函数,也就是说它应该是无状态的和幂等的。Angular 依赖于这些属性,仅在函数的输入发生变化时才执行过滤器。

这似乎暗示了一个纯函数应该既是无状态的又是幂等的,这与我认为的纯函数的常见定义不符。

事实上,它甚至不匹配页面中下面的示例,其中反转字符串中的字符是一个过滤器的示例:显然,反转字符串会更改字符串,如果字符串反转,它会再次更改再一次。

更奇怪的是:如果您查看该教程中链接的纯函数的 Wikipedia 页面(我只能发布一个链接,因为我是新用户,抱歉...):它报告sin ( x ) 作为一个示例纯函数。

所以,根据 Angular.js,正弦是幂等的,对吧?

我错过了什么?

0 投票
1 回答
549 浏览

rest - HTTP方法POST一定是幂等的吗?

我陷入了 REST 的理论问题。

想象一个简单的产品库存 API。该数据库包含一个引用 a product、 aquantity和 a的动作集合status

我有一个先决条件:我不希望 API 用户操纵状态。状态值可以是reservedconfirmed

首先,我想创建一个产品的预订。这是相应的 URL 路径和 HTTP 方法来表示:

[POST] /products/{product-id}/reservations

这将创建具有状态的运动reserved并返回已创建运动的 id。

现在,我想确认这个预订:

[POST] /reservations/{movement-id}/confirmations

在语义上,在我看来,我创建了一个确认的预订。事实上,我只是改变了运动的状态。

所以,2个问题:

  1. 我的第二个 POST 是幂等的。我无法在 RFC 中找到信息,但是 POST 可以是幂等的吗?
  2. 你有没有更好的方式来表示确认?
0 投票
1 回答
247 浏览

mysql - 在 Memcached 中缓存 MySQL 查询的结果并确保更新的一致性

在 Memcached 上保存 MySQL 查询的结果时,我正在考虑一致性。更新会发生什么?

更新时,数据将从 Memcached 中删除。

但是......考虑以下场景,其中以下操作按此顺序发生:

  1. 客户端 A 向 API 服务器发送更新请求。
  2. 客户端 B 向 API 服务器发送 GET 请求。
  3. 两个请求都并行执行。
  4. 处理客户端 B 请求的脚本从数据库中获取数据。
  5. 处理客户端 A 请求更新 DB 数据的脚本。
  6. 处理客户端 A 请求的脚本向 memcached 发送删除请求。
  7. 处理客户端 B 请求的脚本向 memcached 发送插入请求。

在这种情况下,memcached 会填充旧数据。

在这种情况下如何确保一致性?

0 投票
1 回答
963 浏览

jenkins - 当jenkins重写其配置时,如何使这个ansible jenkins脚本具有幂等性?

我有一个部署 jenkins 的 ansible playbook,其中 jenkins config.xmljinja2 模板文件包含这个用于 AD 身份验证的片段:

{{ ldap_password }}是来自保险库的明文密码。

问题是,当 jenkins 在 config.xml 部署后启动时,它会通过将明文密码替换为密码哈希来重写它。(散列似乎取决于目标主机,因为我们在不同的虚拟机上得到不同的散列)。虽然这通常是一件好事,但它使 playbook 的每次执行都将模板操作标记为已更改。

如何使这个播放脚本具有幂等性?

0 投票
0 回答
18 浏览

functional-programming - “更改传入变量”的术语?

是否有一种编程风格的术语,您可以传入一个对象,向该对象添加数据,然后返回相同的对象?像这样:

如果可以避免,这不是我最喜欢的做事方式,因为它更难重构。这种(有时是反的)模式有名称吗?我想说它是“非幂等的”或“可变参数的”,但我不认为这些术语是正确的。

有这个名字吗?

0 投票
2 回答
39 浏览

api - 如果 GET 请求被缓存,它仍然是幂等的吗?

我的理解是幂等请求不会改变任何东西。如果 GET 请求产生了副作用(例如,将请求缓存到搜索端点),它仍然是幂等的吗?