问题标签 [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.
windows - 重复的 Windows 防火墙规则(Netsh AdvFirewall 防火墙)
我注意到当我们通过创建防火墙规则时netsh advfirewall firewall
,它可以运行多次,创建多个相同的防火墙规则。
在尝试创建新规则之前,有什么方法可以检查防火墙规则是否存在?
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.
java - 在有状态操作的情况下如何定义幂等行为?
在某些情况下,人们声称某些东西是“幂等的”,因为它在内存中不是有状态的,即使它的消费者效应是记录交易。
如果读取能力不必是幂等的, getNextIterator()
那么是不是幂等的读取能力,因为它会增加迭代器。余额的银行请求不会是幂等的,因为该请求会创建审计日志。两个后续调用的返回结果可能相同(如果没有发生更改),但日志条目会不同。
java - Java中如何保证Closeable接口的close()方法的幂等性?
该Closeable
接口是在 Java 5 中引入的,而该接口与语句AutoCloseable
一起出现在 Java 7中。扩展(从 Java 7 开始)接口。try-with-resources
Closeable
Autocloseable
在OCA/OCP Java SE 7 - Programmer I & II Study Guide一书中,它在第 399 页上说:
如果我们调用
close()
多次会发生什么?这取决于。对于实现AutoCloseable
的类,要求实现是幂等的。这意味着您可以close()
整天打电话,第二次及以后不会发生任何事情。[...] 对于实现 的类,Closeable
没有这样的保证。
因此,根据本文,实现AutoCloseable
需要是幂等的,而那些Closeable
不是。现在,当我查看AutoCloseable
docs.oracle.com 上的界面文档时,它说:
请注意,与 的
close
方法不同Closeable
,此关闭方法不需要是幂等的。换句话说,close
多次调用此方法可能会产生一些可见的副作用,Closeable.close
这与多次调用必须没有效果不同。
现在这与书中所写的相反。我有两个问题:
(1) 什么是正确的?docs.oracle.com 上的文档还是书?这两个接口中的哪一个需要幂等性?
(2)无论哪一个需要幂等 - 我是对的,Java实际上根本没有办法确保它是幂等的吗?如果是这样,close
幂等方法的“要求”是程序员应该做的事情,但我永远不能确定使用该接口的人确实做到了,对吧?在这种情况下,幂等性只是预言机的一个建议,对吗?
javascript - 纯函数是幂等的吗?
每个纯函数都是幂等的吗?
如果我没有在官方Angular.js 教程中看到这个声明,我就不会问这么疯狂的问题:
过滤函数应该是纯函数,也就是说它应该是无状态的和幂等的。Angular 依赖于这些属性,仅在函数的输入发生变化时才执行过滤器。
这似乎暗示了一个纯函数应该既是无状态的又是幂等的,这与我认为的纯函数的常见定义不符。
事实上,它甚至不匹配页面中下面的示例,其中反转字符串中的字符是一个过滤器的示例:显然,反转字符串会更改字符串,如果字符串反转,它会再次更改再一次。
更奇怪的是:如果您查看该教程中链接的纯函数的 Wikipedia 页面(我只能发布一个链接,因为我是新用户,抱歉...):它报告sin ( x ) 作为一个示例纯函数。
所以,根据 Angular.js,正弦是幂等的,对吧?
我错过了什么?
rest - HTTP方法POST一定是幂等的吗?
我陷入了 REST 的理论问题。
想象一个简单的产品库存 API。该数据库包含一个引用 a product
、 aquantity
和 a的动作集合status
。
我有一个先决条件:我不希望 API 用户操纵状态。状态值可以是reserved
或confirmed
。
首先,我想创建一个产品的预订。这是相应的 URL 路径和 HTTP 方法来表示:
[POST] /products/{product-id}/reservations
这将创建具有状态的运动reserved
并返回已创建运动的 id。
现在,我想确认这个预订:
[POST] /reservations/{movement-id}/confirmations
在语义上,在我看来,我创建了一个确认的预订。事实上,我只是改变了运动的状态。
所以,2个问题:
- 我的第二个 POST 是幂等的。我无法在 RFC 中找到信息,但是 POST 可以是幂等的吗?
- 你有没有更好的方式来表示确认?
mysql - 在 Memcached 中缓存 MySQL 查询的结果并确保更新的一致性
在 Memcached 上保存 MySQL 查询的结果时,我正在考虑一致性。更新会发生什么?
更新时,数据将从 Memcached 中删除。
但是......考虑以下场景,其中以下操作按此顺序发生:
- 客户端 A 向 API 服务器发送更新请求。
- 客户端 B 向 API 服务器发送 GET 请求。
- 两个请求都并行执行。
- 处理客户端 B 请求的脚本从数据库中获取数据。
- 处理客户端 A 请求更新 DB 数据的脚本。
- 处理客户端 A 请求的脚本向 memcached 发送删除请求。
- 处理客户端 B 请求的脚本向 memcached 发送插入请求。
在这种情况下,memcached 会填充旧数据。
在这种情况下如何确保一致性?
jenkins - 当jenkins重写其配置时,如何使这个ansible jenkins脚本具有幂等性?
我有一个部署 jenkins 的 ansible playbook,其中 jenkins config.xml
jinja2 模板文件包含这个用于 AD 身份验证的片段:
{{ ldap_password }}
是来自保险库的明文密码。
问题是,当 jenkins 在 config.xml 部署后启动时,它会通过将明文密码替换为密码哈希来重写它。(散列似乎取决于目标主机,因为我们在不同的虚拟机上得到不同的散列)。虽然这通常是一件好事,但它使 playbook 的每次执行都将模板操作标记为已更改。
如何使这个播放脚本具有幂等性?
functional-programming - “更改传入变量”的术语?
是否有一种编程风格的术语,您可以传入一个对象,向该对象添加数据,然后返回相同的对象?像这样:
如果可以避免,这不是我最喜欢的做事方式,因为它更难重构。这种(有时是反的)模式有名称吗?我想说它是“非幂等的”或“可变参数的”,但我不认为这些术语是正确的。
有这个名字吗?
api - 如果 GET 请求被缓存,它仍然是幂等的吗?
我的理解是幂等请求不会改变任何东西。如果 GET 请求产生了副作用(例如,将请求缓存到搜索端点),它仍然是幂等的吗?