亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HTTP 定時請求 Golang

HTTP 定時請求 Golang

Go
一只斗牛犬 2022-01-17 10:34:49
我是 Go 新手,并嘗試向多個 http/https 服務器生成多個請求,以檢查每個 Web 服務器的響應時間和狀態。我將 URL 存儲在一個文本文件中,之后我決定在我的代碼中添加一個代碼,該代碼將在一定時間后繼續在每個 URL 上生成這些請求(時間量以秒為單位在每個 URL 旁邊鍵入并間隔一個標簽)。當我開始從文件中掃描時間時,一切都變得復雜了,我無法找到我的錯誤。這是我的 Go 代碼:package mainimport (    "fmt"    "io/ioutil"    "log"    "net/http"    "strconv"    "strings"    "sync"    "time")func get_resp_time(url string) { //Get time for each URL    time_start := time.Now()    fmt.Println("Start time", time_start, " URL ", url)    resp, err := http.Get(url)    //fmt.Printf("resp : %#v \n", resp)    if err != nil {        log.Printf("Error fetching: %v", err)    }    defer resp.Body.Close()    fmt.Println(time.Since(time_start), url, " Status: ", resp.Status)}func main() {    content, _ := ioutil.ReadFile("url_list.txt")    lines := strings.Split(string(content), "\t")    //fields := strings.Split(string(content), "\t")    //fmt.Println(lines[1])    //fmt.Println(strconv.Atoi(lines[0]))    const workers = 25    var nb int    wg := new(sync.WaitGroup)    in := make(chan string, 2*workers)    if _, err := strconv.Atoi(lines[1]); err == nil {        nb, err = strconv.Atoi(lines[1])    }    ticker := time.NewTicker(time.Second * time.Duration(nb))    for t := range ticker.C {        fmt.Println("Time of origin: ", time.Now())        for i := 0; i < len(lines)-1; i++ {            wg.Add(1)            go func() {                defer wg.Done()                //for j := 0; j < len(in); j++ {                if _, err := strconv.Atoi(lines[i]); err == nil {                    nb, err = strconv.Atoi(lines[i])                    //get_resp_time(url)                } else {                    get_resp_time(lines[i])                }                //}            }()        }        for _, url := range lines {            if url != "" {                in <- url            }        }        fmt.Println("Tick at ", t)    }    close(in)    wg.Wait()}和文本文件:http://google.com   5   http://nike.com     10  編輯:好吧,我只是將文件更改為只有一個持續時間,因為顯然擁有多個持續時間非常復雜(根據我的項目顧問)。謝謝您的幫助!
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

您似乎沒有正確解析文件。你應該先分裂\n,然后分裂\t。另外,驗證您的文本文件實際上有\t空格而不是空格。

您可能應該遍歷您的解析值fmt.Println以驗證您的解析結果是否符合預期。

它應該看起來像這樣。


查看完整回答
反對 回復 2022-01-17
  • 1 回答
  • 0 關注
  • 309 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號