如何在Linux终端中特定的一秒时间内发送200个curl请求?

如何在Linux终端中特定的一秒时间内发送200个curl请求?

首先,让我解释一下我的问题以及我要做什么。我想在一秒钟内向我的 Web 服务器的 API 发布 200 个 curl 请求(它们的响应并不重要),具体是 30 个。我尝试使用以下代码

    mycurl() { curl -Z 'https://mywebserver/' -H 'Accept: application/json' --data-binary '{"JSON"}' ;};
   export -f mycurl;
   while [  $(gdate +%S%N) -gt 29500000000 -o $(gdate +%S%N) -lt 30500000000 ]; do mycurl; done

当我执行此代码时,在指定的时间内,只有 6 次 curl 会发送到服务器,如何将其增加到 200 个请求?当然,我希望 200 个请求同时到达我的 Web 服务器。

答案1

如果你真的想同时发送 200 个请求,很简单。只需使用:

mycurl() {
  curl -Z 'https://mywebserver/' -H 'Accept: application/json' \
  --data-binary '{"JSON"}' &
};
export -f mycurl;

for $((COUNT=1; COUNT<=200; COUNT++)); do mycurl; done

这将curl在后台启动进程并允许它们同时运行。但是它几乎肯定会在一秒钟内完成!

相关内容