Bash
如何從 bash shell 腳本並行呼叫服務 URL?
我有一個從另一個應用程序呼叫的服務。以下是我正在呼叫的服務 URL -
http://www.betaservice.domain.host.com/web/hasChanged?ver=0
我需要以多執行緒方式對上面的服務 URL 進行一些負載測試,而不是一個一個地依次呼叫。
bash shell腳本有什麼辦法,我可以通過以多執行緒方式呼叫上面的服務URL來載入它嗎?如果可能的話,我可以讓 60-70 個執行緒並行呼叫以上 URL 嗎?
我不會將其稱為多執行緒,但您可以簡單地在後台啟動 70 個作業:
for i in {1..70}; do wget http://www.betaservice.domain.host.com/web/hasChanged?ver=0 2>/dev/null & done
這將導致 70 個
wget
程序同時執行。你也可以做一些更複雜的事情,比如這個小腳本:#!/usr/bin/env bash ## The time (in minutes) the script will run for. Change 10 ## to whatever you want. end=$(date -d "10 minutes" +%s); ## Run until the desired time has passed. while [ $(date +%s) -lt "$end" ]; do ## Launch a new wget process if there are ## less than 70 running. This assumes there ## are no other active wget processes. if [ $(pgrep -c wget) -lt 70 ]; then wget http://www.betaservice.domain.host.com/web/hasChanged?ver=0 2>/dev/null & fi done