diff options
author | Daniel Stenberg <daniel@haxx.se> | 2022-05-23 17:59:56 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2022-05-23 17:59:56 +0200 |
commit | 8f48b5d783bd3cc15fc2669d76c1d4931be1c501 (patch) | |
tree | e6eebbe58d8afb8456e2a31a00c98e70bfdaa91d /docs | |
parent | 64641d217054b51ca94bc072b3c40950996380bc (diff) | |
download | curl-8f48b5d783bd3cc15fc2669d76c1d4931be1c501.tar.gz |
curl: add --rate to set max request rate per time unit
--rate "12/m" - for 12 per minute or
--rate "5/h" - for 5 per hour
Removed from TODO
Closes #8671
Diffstat (limited to 'docs')
-rw-r--r-- | docs/TODO | 12 | ||||
-rw-r--r-- | docs/cmdline-opts/Makefile.inc | 1 | ||||
-rw-r--r-- | docs/cmdline-opts/rate.d | 33 | ||||
-rw-r--r-- | docs/options-in-versions | 1 |
4 files changed, 35 insertions, 12 deletions
@@ -149,7 +149,6 @@ 18.4 --proxycommand 18.5 UTF-8 filenames in Content-Disposition 18.6 Option to make -Z merge lined based outputs on stdout - 18.7 at least N milliseconds between requests 18.8 Consider convenience options for JSON and XML? 18.9 Choose the name of file in braces for complex URLs 18.10 improve how curl works in a windows console window @@ -999,17 +998,6 @@ https://github.com/curl/curl/issues/5175 -18.7 at least N milliseconds between requests - - Allow curl command lines issue a lot of request against services that limit - users to no more than N requests/second or similar. Could be implemented with - an option asking that at least a certain time has elapsed since the previous - request before the next one will be performed. Example: - - $ curl "https://example.com/api?input=[1-1000]" -d yadayada --after 500 - - See https://github.com/curl/curl/issues/3920 - 18.8 Consider convenience options for JSON and XML? Could we add `--xml` or `--json` to add headers needed to call rest API: diff --git a/docs/cmdline-opts/Makefile.inc b/docs/cmdline-opts/Makefile.inc index 87819e087..e486c77b6 100644 --- a/docs/cmdline-opts/Makefile.inc +++ b/docs/cmdline-opts/Makefile.inc @@ -198,6 +198,7 @@ DPAGES = \ quote.d \ random-file.d \ range.d \ + rate.d \ raw.d \ referer.d \ remote-header-name.d \ diff --git a/docs/cmdline-opts/rate.d b/docs/cmdline-opts/rate.d new file mode 100644 index 000000000..cf4a1709e --- /dev/null +++ b/docs/cmdline-opts/rate.d @@ -0,0 +1,33 @@ +Long: rate +Arg: <max request rate> +Help: Request rate for serial transfers +Category: connection +Example: --rate 2/s $URL +Example: --rate 3/h $URL +Example: --rate 14/m $URL +Added: 7.84.0 +See-also: limit-rate retry-delay +--- +Specify the maximum transfer frequency you allow curl to use - in number of +transfer starts per time unit (sometimes called request rate). Without this +option, curl will start the next transfer as fast as possible. + +If given several URLs and a transfer completes faster than the allowed rate, +curl will wait until the next transfer is started to maintain the requested +rate. This option has no effect when --parallel is used. + +The request rate is provided as "N/U" where N is an integer number and U is a +time unit. Supported units are 's' (second), 'm' (minute), 'h' (hour) and 'd' +/(day, as in a 24 hour unit). The default time unit, if no "/U" is provided, +is number of transfers per hour. + +If curl is told to allow 10 requests per minute, it will not start the next +request until 6 seconds have elapsed since the previous transfer was started. + +This function uses millisecond resolution. If the allowed frequency is set +more than 1000 per second, it will instead run unrestricted. + +When retrying transfers, enabled with --retry, the separate retry delay logic +is used and not this setting. + +If this option is used several times, the last one will be used. diff --git a/docs/options-in-versions b/docs/options-in-versions index e6359ab92..a6c75cfd0 100644 --- a/docs/options-in-versions +++ b/docs/options-in-versions @@ -186,6 +186,7 @@ --quote (-Q) 5.3 --random-file 7.7 --range (-r) 4.0 +--rate 7.84.0 --raw 7.16.2 --referer (-e) 4.0 --remote-header-name (-J) 7.20.0 |