問題タブ [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 重複行

VBox で壊れた sendfile サポートを修正したいので、 に行を入れる必要があります。私はansibleプレイブックでそれをやりたいです。特定のタスクは次のようになります。

プレイブックを再度呼び出す必要があるときに問題が発生しており、このタスクは行を複製しています。それを修正する方法。

0 投票する
1 に答える
1981 参照

java - Java では、Closeable インターフェースの close() メソッドの冪等性はどのように保証されますか?

CloseableインターフェースはJava 5で導入されましたが、インターフェースはJava 7でステートメントAutoCloseableとともに導入されました。(Java 7 以降)インターフェイスを拡張します。try-with-resourcesCloseableAutocloseable

OCA/OCP Java SE 7 - Programmer I & II Study Guide』の 399 ページには、次のように書かれています。

close()複数回呼び出すとどうなりますか? 場合によります。を実装するクラスAutoCloseableの場合、実装はべき等である必要があります。つまりclose()、一日中電話しても、2 回目以降は何も起こらないということです。[...] を実装するクラスCloseableの場合、そのような保証はありません。

したがって、このテキストによると、 の実装はAutoCloseable冪等である必要があり、そうでCloseableないものは必要です。AutoCloseabledocs.oracle.com でインターフェースのドキュメントを見ると、次のように書かれています。

closeのメソッドとは異なりCloseable、この close メソッドはべき等である必要はないことに注意してください。つまり、このcloseメソッドを複数回呼び出すと、目に見える副作用が発生する可能性がありますCloseable.close

今、これは本に書かれていることの反対です。2 つの質問があります。

(1) 正しいのは? docs.oracle.com のドキュメントですか、それとも本ですか? べき等性が必要な 2 つのインターフェイスはどれですか?

(2) どちらが冪等である必要があるとしても、Java には冪等であることを保証する方法がまったくないというのは正しいですか? もしそうなら、メソッドが冪等であるという「要件」はcloseプログラマーがすべきことですが、インターフェイスを使用した誰かが実際にそれを行ったかどうかはわかりませんよね? この場合、冪等性は単なるオラクルの提案ですよね?

0 投票する
1 に答える
990 参照

javascript - 純粋関数は冪等ですか?

すべての純粋関数は冪等ですか?

公式のAngular.js チュートリアルでこのステートメントを見ていなければ、私はそのようなクレイジーな質問をしませんでした:

フィルター関数は純粋な関数である必要があります。つまり、ステートレスでべき等である必要があります。Angular はこれらのプロパティに依存し、関数への入力が変更された場合にのみフィルターを実行します。

これは、純粋関数はステートレスかつ冪等でなければならないことを暗示しているように思われますが、これは純粋関数の一般的な定義とは一致しません。

実際、これはページ内の以下の例とは一致しません。ここでは、文字列内の文字を逆にすることがフィルターの例として示されています。もう一度。

さらに興味深いことに、そのチュートリアルでリンクされている純粋な関数のウィキペディアのページを見ると (私は新しいユーザーなので、リンクを 1 つしか投稿できません。申し訳ありません...): sin ( x ) が a の例として報告されます。純粋関数。

Angular.js によると、正弦は冪等性ですよね?

私は何が欠けていますか?

0 投票する
1 に答える
549 参照

rest - HTTP メソッド POST は必然的にべき等ですか?

REST の理論的な問題で立ち往生しています。

シンプルな商品在庫 API を想像してみてください。productデータベースには、 、 、quantityおよび を参照するムーブメントのコレクションが 1 つ含まれていますstatus

前提条件が 1 つあります。それは、API ユーザーにステータスを操作させたくないということです。ステータス値はreservedまたはconfirmedです。

まず、商品の予約を作成したいと思います。これを表す対応する URL パスと HTTP メソッドを次に示します。

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

これにより、ステータス付きのムーブメントがreserved作成され、作成されたムーブメントの ID が返されます。

ここで、この予約を確認します。

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

意味的には、確認済みの予約を作成しているように思えます。実際には、ムーブメントのステータスを変更するだけです。

だから、2つの質問:

  1. 私の 2 番目の POST は冪等です。RFC で情報を見つけることができませんでしたが、POST は冪等にできますか?
  2. 確認を表すためのより良い方法が見つかりましたか?
0 投票する
1 に答える
247 参照

mysql - MySQL クエリの結果を Memcached にキャッシュし、更新の一貫性を確保する

MySQLクエリの結果をMemcachedに保存するときの一貫性について考えていました。更新時に何が起こりますか?

更新時に、データは Memcached から削除されます。

しかし...次の操作がこの順序で行われる次のシナリオを考えてみましょう:

  1. クライアント A が更新リクエストを API サーバーに送信します。
  2. クライアント B が GET リクエストを API サーバーに送信します。
  3. 両方のリクエストが並行して実行されます。
  4. クライアント B のリクエストを処理するスクリプトは、DB からデータを取得します。
  5. クライアント A の要求を処理して DB 上のデータを更新するスクリプト。
  6. クライアント A の要求を処理するスクリプトは、削除要求を memcached に送信します。
  7. クライアント B のリクエストを処理するスクリプトは、挿入リクエストを memcached に送信します。

この場合、memcached には古いデータが取り込まれます。

このシナリオで一貫性を確保するにはどうすればよいですか?

0 投票する
1 に答える
963 参照

jenkins - ジェンキンスがその構成を書き換えているときに、このアンシブルジェンキンススクリプトを冪等にする方法は?

jenkins をデプロイするための ansible プレイブックがあります。jenkins config.xmljinja2 テンプレート ファイルには、AD 認証用の次のスニペットが含まれています。

{{ ldap_password }}ボールトからの平文パスワードです。

問題は、config.xml がデプロイされた後に jenkins が起動すると、クリア テキストのパスワードがパスワード ハッシュに置き換えられて書き換えられることです。(異なる仮想マシンでは異なるハッシュを取得するため、ハッシュはターゲット ホストに依存しているようです)。これは一般的には良いことですが、プレイブックを実行するたびに、テンプレート操作が変更されたとマークされます。

この再生スクリプトを冪等にするにはどうすればよいですか?

0 投票する
0 に答える
18 参照

functional-programming - 「渡された変数の変更」の用語?

オブジェクトを渡し、オブジェクトにデータを追加し、同じオブジェクトを返すプログラミング スタイルを表す用語はありますか? そのようです:

リファクタリングが難しくなる可能性があるため、回避できる場合、これは私のお気に入りの方法ではありません。この (場合によってはアンチ) パターンの名前はありますか? 「べき等ではない」または「可変引数」であると言いたいのですが、それらの用語が正しいとは思いません。

これに名前はありますか?

0 投票する
2 に答える
39 参照

api - キャッシュされている場合でも、GET 要求はべき等ですか?

私の理解では、冪等のリクエストは何も変更しません。GET リクエストによって生成される副作用 (たとえば、検索エンドポイントへのリクエストのキャッシュ) がある場合、それはまだべき等ですか?