問題タブ [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 投票する
4 に答える
307 参照

.net - クラスが IEnumerable を実装していない場合でも、GetEnumerator メソッドはべき等である必要があります。

この質問は、オブジェクトを反復処理するときにオブジェクトを変更して IEnumerable インターフェイスを悪用することに関して私が提起した別の質問に便乗しています。

一般的なコンセンサスは、IEnumerable を実装するものはべき等であってはならないということです。しかし、.net は foreach ステートメントを使用したコンパイル時のダック タイピングをサポートしています。IEnumerator GetEnumerator() メソッドを提供するすべてのオブジェクトは、foreach ステートメント内で使用できます。

GetEnumerator メソッドはべき等であるべきですか、それとも IEnumerable を実装するときですか?

編集 (追加されたコンテキスト)

私が提案しているのは、キューを反復処理するときに、各アイテムがキューから取り出されるということです。さらに、GetEnumerator の呼び出し後にキューにプッシュされた新しいオブジェクトは、引き続き反復処理されます。

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

wcf - サービス層で冪等性を処理するには?

サービスレイヤーにべき等メカニズムを組み込みたいSOAアプリがあります。メッセージングに WCF を使用しています。

アプリでべき等性をどのように処理しますか? サンプルコードはありますか?私の目標は、同じメッセージ(CreateOrderなど)が複数回処理されるのを防ぐことです(そのように構成されている場合)。

0 投票する
6 に答える
9083 参照

function - べき等関数は純粋関数と同じですか?

ウィキペディアの冪等性の説明を読みました。関数の出力がその入力によって決定されることを意味することを私は知っています。しかし、非常によく似た概念である純粋関数を聞いたことを覚えています。私はそれらをグーグルで検索しましたが、それらの違いを見つけることができません...

それらは同等ですか?

0 投票する
4 に答える
90059 参照

rest - 2 回目に HTTP DELETE を使用してリソースを削除するときのステータス コード

HTTP の DELETE 動詞がべき等であることを考えると、次の要求を発行すると、2 回目 (または 3 回目、4 回目など...) に何が起こるでしょうか?

初めて、リソースが削除され、204 (成功、コンテンツなし) が返されます。後続の呼び出しで 204 を返す必要がありますか?それとも 404 (見つかりません) を返す必要がありますか?

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

python - taskqueueおよび非べき等タスク

私は投票アプリに取り組んでいます。このアプリでは、ユーザーがすべての投票者のメールアドレスのリストをアップロードできます。エラーチェックを行った後、Voter投票者ごとにエンティティを作成します。多数の投票者がいる可能性があるVoterため、30秒の制限を回避するために、タスクキューにエンティティを作成します。タスクは次のようになります。

ただし、このタスクはべき等ではありません。このタスクをべき等にする方法はありますか?それとも、これを行うためのより良い方法はありますか?

0 投票する
3 に答える
670 参照

http - 購読解除リンクはべき等である必要がありますか?

登録解除リンクがあります。これは、本質的に HTTP GET です。

適切な RFCでは、これはべき等であるべきだと述べていますが、私の考えでは、ユーザーはリンクをクリックしてアクションを実行することを期待しています。

私はこれを実装して、リンクが大きな確認ボタンのあるページに移動し、サブスクリプションを更新し、それを確認して、アカウントの最終状態を表示するようにしました (複数のタイプのサブスクリプションがあります)。

でも、単純に確認ボタンの段階を飛ばした方がUX良くないのかな…

「私はこれを考えすぎていませんか?」という質問への答え。確かにそうですが、べき等GETのベストプラクティスと、ユーザーの期待を混乱させないベストプラクティスとのバランスについて、人々の意見はどうなのかと思いました...

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

database - 同時に「冪等で交換可能」な DB 操作はどのようなものですか?

私は Scala DB フレームワーク/ラッパーを調査していて、Twitter から Gizzard に出会いました。最初は感動しましたが、制限を読んで冷静になりました。彼らは、あなたが行うすべての DB 操作はべき等である必要があると言います可換。ちゃんと理解すれば、基本的にはほとんど何も残らない。例として、整数カウンターを持つエンティティがあり、インクリメントする必要があるとします。「増分」操作または「設定」操作のいずれかを使用できます。しかし、increment は冪等ではなく (2 回実行すると、1 回実行すると異なる結果が得られます)、set は可換ではありません (最初に 5 を設定し、次に 2 を設定すると、最初に 2 を設定し、次に 5 を設定すると、異なる結果が得られます)。したがって、ほとんどのユースケースであまり役に立たない「insert-if-absent」以外に何か残っているものはありますか? 基本的に何も役に立たないほど制約されている分散データベースフレームワークのポイントは何ですか? 私は何か重要なものを見逃しているに違いない。

[編集] 「insert-if-absent」(および「delete-if-present」) とは別に、「compare-timestamp-and-set」は、変更が破棄される代わりにキューに入れられる場合、冪等かつ可換であると思います。 「以前の変更」がまだ欠落している場合。しかし、DBがそれを実装しているかどうかはわかりません。

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

java - 休止状態のべき等更新

これをネットで検索してみましたがだめでした。休止状態を使用してべき等更新を実行する方法はありますか。

ユース ケースの 1 つは、HTTP PUT を使用して、REST API を介してデータベース内の特定のフィールドを更新することです。たとえば、Id、Name、Phone、UpdateDateという列を持つデータベースがあり、(特定のIdの) Phoneフィールドを同じ値で複数回更新する場合、最初のアクションで電話を更新する必要があります(また、私の変更も変更します)。更新日)。その後の更新は、レコード (およびUpdateDate )に影響を与えてはなりません。

これは、最初にレコードを取得し、更新を実行する前に入力値と比較することで、アプリケーションに実装できます。Hibernateに組み込み機能があるかどうか疑問に思っていましたか?

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

azure - Azureべき等操作のパターン?

Azure操作、特にテーブルストレージに対するべき等操作を設計するパターンを知っている人はいますか? より一般的なアプローチは、id 操作を生成し、それをキャッシュして新しい実行を検証することですが、操作を処理するワーカーが多数ある場合、このアプローチはより複雑になります。:-))

ありがとう

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

ruby-on-rails - 冪等性、PUT、GET、POST などについて混乱している

これらのトピックに関する議論のほとんどは、URL を形成する方法またはリソースを要求する方法に関するものです。私が何をしているのかを説明し、コミュニティが私の問題をよりウェブデザインの専門的な言語で言い直すのに役立つかどうか見てみましょう :-)

「Web アプライアンス」と呼ばれるハードウェアを構築しています。オンラインの気象観測所と同様に、ホーム LAN に配置され、リモート サーバーにメッセージを送信します。5 分ごとに次のレコードを送信するとします。

このデータを収集している「空の Web ページ」は、デバイス ID とサンプルのテーブルを含む Ruby-on-Rails アプリです。

次のような URL を作成することにより、Web アプライアンスが新しいサンプルを「samples」データ テーブルに直接投稿できるようにしたいと考えています。

http://kevinswebsite.com/samples/new?timestamp=2011_Oct_01_1440&unit_id=75&temp=75.5

上記により、2011 年 10 月 1 日午後 2 時 40 分にユニット #75 が 75.5 度の温度を報告したという記録が作成されるはずです。

このようなことは可能ですか?

ありがとう、

ケビン