計算方法と根拠

待機時間の求め方

n回目の再試行の待ち時間は「基準×倍率の(n-1)乗」で、上限を超えたら上限で頭打ちにします(上限付きの指数バックオフ)。基準1秒・倍率2なら、1・2・4・8・16・32…秒と増えます。

ジッターについて

ジッター(待ち時間にランダムな幅を加える方式)は含めていません。ここで出すのはランダムさのない、決まった値の表です。

計算例

基準1秒・倍率2・上限30秒で6回再試行すると、待ち時間は1・2・4・8・16・30秒、累計は61秒です。

使っている式

計算式
名前やっていること式
1回目の待ち時間(回数内のとき)再試行が1回以上のときの1回目の待ち時間です。w1 = if(tries >= 1, min(cap, base * pow(mult, 0)), 0)
2回目の待ち時間(回数内のとき)再試行が2回以上のときの2回目の待ち時間です。w2 = if(tries >= 2, min(cap, base * pow(mult, 1)), 0)
3回目の待ち時間(回数内のとき)再試行が3回以上のときの3回目の待ち時間です。w3 = if(tries >= 3, min(cap, base * pow(mult, 2)), 0)
4回目の待ち時間(回数内のとき)再試行が4回以上のときの4回目の待ち時間です。w4 = if(tries >= 4, min(cap, base * pow(mult, 3)), 0)
5回目の待ち時間(回数内のとき)再試行が5回以上のときの5回目の待ち時間です。w5 = if(tries >= 5, min(cap, base * pow(mult, 4)), 0)
6回目の待ち時間(回数内のとき)再試行が6回以上のときの6回目の待ち時間です。w6 = if(tries >= 6, min(cap, base * pow(mult, 5)), 0)
7回目の待ち時間(回数内のとき)再試行が7回以上のときの7回目の待ち時間です。w7 = if(tries >= 7, min(cap, base * pow(mult, 6)), 0)
8回目の待ち時間(回数内のとき)再試行が8回以上のときの8回目の待ち時間です。w8 = if(tries >= 8, min(cap, base * pow(mult, 7)), 0)
9回目の待ち時間(回数内のとき)再試行が9回以上のときの9回目の待ち時間です。w9 = if(tries >= 9, min(cap, base * pow(mult, 8)), 0)
10回目の待ち時間(回数内のとき)再試行が10回以上のときの10回目の待ち時間です。w10 = if(tries >= 10, min(cap, base * pow(mult, 9)), 0)
11回目の待ち時間(回数内のとき)再試行が11回以上のときの11回目の待ち時間です。w11 = if(tries >= 11, min(cap, base * pow(mult, 10)), 0)
12回目の待ち時間(回数内のとき)再試行が12回以上のときの12回目の待ち時間です。w12 = if(tries >= 12, min(cap, base * pow(mult, 11)), 0)
待ち時間の合計1回目から指定回数までの待ち時間の合計です。totalw = w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9 + w10 + w11 + w12
待ち時間の合計(結果)各回の待ち時間(上限で頭打ち)の合計です。totalw
最後の再試行の待ち時間(結果)min(上限, 基準×倍率^(回数-1))です。min(cap, base * pow(mult, tries - 1))
待ち時間の合計(分)(結果)合計(秒)を60で割った値です。totalw / 60

期ごとの繰り返し計算

再試行ごとの待機時間と累計

各回の待ち時間と、そこまでの累計です。

期の数 = tries。

式の記法: + - * / ^(べき乗)、かっこ、min / max / round / ceil / floor / pow / abs / sqrt、if(条件, 真のとき, 偽のとき)。round(x, 桁) は四捨五入、ceil は切り上げ、floor は切り捨てです。

設定値(定数)と出典

この計算では、税率や料金表などの外部の設定値は使っていません。数学的な定義の式だけで計算しています。

入力できる範囲

入力項目
項目範囲初期値
基準の待ち時間0.01〜3,600秒1秒
倍率1〜10倍2倍
待ち時間の上限0.01〜86,400秒30秒
再試行の回数1〜12回6回

結果は、同じ条件なら本サイトのどのページでも同じ数字になります(ページの数字も、計算ツールも同じ計算の仕組みで出しています)。

ご利用にあたって

  • 入力した基準・倍率・上限にもとづく算術です。特定のサービスやライブラリの既定値・推奨値を示すものではなく、実際の設計ではそのサービスの仕様を確認してください。
  • 待機時間だけを計算します。リクエスト自体の所要時間・タイムアウト時間・ジッターは含めていません。