首先,让我解释一下我的问题以及我要做什么。我想在一秒钟内向我的 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
在后台启动进程并允许它们同时运行。但是它几乎肯定会在一秒钟内完成!