![如何在Linux终端中特定的一秒时间内发送200个curl请求?](https://linux22.com/image/1620331/%E5%A6%82%E4%BD%95%E5%9C%A8Linux%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%89%B9%E5%AE%9A%E7%9A%84%E4%B8%80%E7%A7%92%E6%97%B6%E9%97%B4%E5%86%85%E5%8F%91%E9%80%81200%E4%B8%AAcurl%E8%AF%B7%E6%B1%82%EF%BC%9F.png)
首先,让我解释一下我的问题以及我要做什么。我想在一秒钟内向我的 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
在后台启动进程并允许它们同时运行。但是它几乎肯定会在一秒钟内完成!