「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[クラウド設計パターン]] --[[HttpClientの類の使い方>HttpClientの類の使い方#e8fa9d8f]] * 目次 [#k791a80b] #contents *概要 [#fe5611c7] -タイムアウト時、指数関数的にリトライ間隔を後退 -1秒、2秒、4秒、8秒、16秒とリトライ間隔を後退させる。 ライブラリを実装しようと思い調べてみた。 *詳細 [#d38016ef] [[リトライ回数>#obaf55e7]]の最大値まで、[[リトライ間隔>#pa5f8959]]を後退させながらリトライ処理を繰り返す。 -指定の[[リトライ回数>#obaf55e7]]の最大値まで、 -[[リトライ間隔>#pa5f8959]]を指数関数的に後退させながら -リトライ処理を繰り返す方式のこと。 **リトライ回数 [#obaf55e7] 最大値がある。 **リトライ間隔 [#pa5f8959] リトライ間隔は >min ( ( ( 2^[[n>#fec9380f]] ) + [[random_number_milliseconds>#s6df1d71]] ), [[maximum_backoff>#pa02bbb3]] ) で、計算可能。 ***n [#fec9380f] [[リトライ回数>#obaf55e7]] ***random_number_milliseconds [#s6df1d71] 1,000 ミリ秒以下の乱数。 -なんらかの状況によって多数のクライアントが同期され、~ 多数の再試行が同着するような状況を避けることができる。 -この値は、再試行リクエストの後に毎回再計算される。 ***maximum_backoff [#pa02bbb3] リトライ間隔の最大値。 -通常、32 秒または 64 秒。 -適切な値はユースケースによって異なる。 *参考 [#u9b87c62] 色々あるが、以下が一番、解り易い。 -切り捨て型指数バックオフ | Cloud Storage | Google Cloud~ https://cloud.google.com/storage/docs/exponential-backoff?hl=ja ---- Tags: [[:通信技術]], [[:.NET開発]], [[:ASP.NET]]