再送とおそい応答

操作の途中でネットワークが切れます。ボタンを二度押して、データベースに何が残るかを見てください。冪等キーがある場合と、ない場合とで。

図の一部をタップすると、その段階が開きます。

全体像

操作ごとのキーは、再送を「二度目の課金」から「保存済み結果の読み出し」に変えます。非同期の契約は、待つことを購読に変えます。どちらも言っていることは同じです。ネットワークは当てにならず、それは例外ではなく普通のことです。

収録内容

  1. 1 要求と切れた接続 — 「課金後にネットワークを切る」を入れて、ボタンを二度押してください。
  2. 2 サーバーがすること — キーはクライアントが作ります。操作ごとに1つ、再送のたびに同じものを送ります。
  3. 3 キーなし — 重複 — 再送をするのは人だけではありません。ブラウザも、プロキシも、ジョブキューもやります。
  4. 4 キーあり — 記録は1つ — 行は実際の処理より前に作ります。そうしないと、同時に来た二つの再送がすれ違ってしまいます。
  5. 5 おそい応答:504か202 — 流して渡すにはプロキシのバッファリングを切る必要があります。切らないと、最後にまとめて届きます。

インタラクティブな解説

1 / 5