Come funziona il “curl –riprova-max-tempo <i secondi>” il lavoro?

Non so come --retry-max-time calcolato.
Se scarico un file file.txt:

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

  • [ 0- 2] Prende 2s per scaricare 50% del file, e non la velocità di più.
  • [ 2-10] È in attesa di un altro 8s, ancora nessuna velocità, timeout, tenterà di
  • [10-15] Attende 5s prima di riprovare #1
  • [15-25] Ancora nessuna velocità, tenterà di
  • [25-30] Attende 5s prima di riprovare #2
  • [30-34] Prende 4s per scaricare 33% del file, e non la velocità di più.
  • [34-40] È in attesa di un altro 6s, ancora nessuna velocità, timeout

Sarà curl interrompere riprova a questo punto(40s)?

Quando è stata l’ retry timer avviato e fermato?


   --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)
InformationsquelleAutor kev | 2012-05-13

 

2 Replies
  1. 17

    Mi permetta di provare a chiarire.

    Quando curl decide di fare un tentativo (perché --retry è utilizzato e le condizioni erano tali che un tentativo è garantito) e un --retry-max-time è stato impostato, curl controlla se il tempo totale trascorso dall’inizio dell’operazione che ha superato il --retry-max-time o non. Se non, permetterà che i tentativi di un altro.

    Così nella riga di comando di cui sopra: se il tempo totale è inferiore a 32 secondi dal tempo di considerare la riprova, si farà un altro tentativo. Se il tempo totale è più di 32 secondi è in grado di non fare più tentativi.

  2. 47
    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---->|
    |....==    | {...==     |  |....==    |    |.....|        |..=== =   |   }
                 {                                                           }
    

    NOTAZIONE

    =====  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)
    

    NOTA

    • riprova ritardo di 1, 2, 4, 8 …
    • riprova #3 timeout di connessione
    • riprova #5 non accadono mai
    • download non riuscito alla FINE (71 sec)
    • Quadro impressionante. Per ottenere il lettore andando più veloce, un po ‘ di testo a piedi attraverso l’esempio sarebbe utile. A prescindere, un po ‘ di pazienza si rivela utile qui.

Lascia un commento