36

--retry-max-time計算方法がわかりません。ファイルをダウンロードした場合file.txt

curl --max-time 10 --retry 3 --retry-delay 5 --retry-max-time 32 'http://www.site.com/download/file.txt'

  • [ 0- 2]2sファイルのダウンロードに時間がかかり50%、速度はもうありません。
  • [ 2-10]それは別のものを待ちます8s、それでも速度、タイムアウトはありません、再試行します
  • [10-15]再試行する前に待機します5s#1
  • [15-25]まだ速度がありません、再試行します
  • [25-30]再試行する前に待機します5s#2
  • [30-34]4sファイルのダウンロードに時間がかかり33%、速度はもうありません。
  • [34-40]6sそれは別の、まだ速度がない、タイムアウトを待つ

curlこの時点で再試行を停止しますか()40s

いつretry timer開始および停止されましたか?


   --retry-max-time <seconds>
          The  retry  timer  is reset before the first transfer attempt. Retries will be done as usual (see --retry) as
          long as the timer hasn't reached this given limit. Notice that if the timer hasn't  reached  the  limit,  the
          request  will be made and while performing, it may take longer than this given time period. To limit a single
          request´s maximum time, use -m, --max-time.  Set this option to  zero  to  not  timeout  retries.  (Added  in
          7.12.3)
4

2 に答える 2

57
curl --connect-timeout 5 \
     --max-time 10 \
     --retry 5 \
     --retry-delay 0 \
     --retry-max-time 60 \
     'http://www.site.com/download/file.txt'

|<---0---->| {<---1---->|  |<---2---->|    |<---3---->|   |<---4---->|   }            |<---5---->|
|....==    | {...==     |  |....==    |    |.....|        |..=== =   |   }
             {                                                           }

表記法

=====  downloading...       (file size is 5)
.....  --connect-timeout 5
|<->|  --max-time 10
<-5->  --retry 5
>| |<  --retry-delay 0      ([default] exp backoff algo)
{   }  --retry-max-time 60  (GAME OVER)

ノート

  • 再試行遅延1、2、4、8..。
  • 再試行#3接続タイムアウト
  • 再試行#5は決して起こりません
  • ENDでダウンロードに失敗しました(71秒)
于 2012-11-25T19:09:41.460 に答える
21

はっきりさせておきましょう。

curlが再試行を決定し(--retry使用され、再試行が保証される条件であったため)、a--retry-max-timeが設定された場合、curlは操作の開始からの合計時間が経過したかどうかをチェックします--retry-max-time。そうでない場合は、もう一度再試行できます。

したがって、上記のコマンドラインでは、再試行を検討するまでに合計時間が32秒未満の場合、再試行が繰り返されます。合計時間が32秒を超える場合、それ以上の再試行は行われません。

于 2012-06-13T10:15:46.933 に答える