這是我到目前為止所擁有的:package mainimport ( "encoding/json" "fmt" "io/ioutil" "log" "net/http")func subscribe(urls Urls) []byte { req, err := http.NewRequest("GET", urls.Url, nil) if err != nil { log.Fatal(err) } req.Header.Set("authentication", "Bearer " + urls.Token) http_client := &http.Client{} res, err := http_client.Do(req) if err != nil { log.Fatal(err) } defer res.Body.Close() resourceResp, err := ioutil.ReadAll(res.Body) if err != nil { log.Fatal(err) } fmt.Println(string(resourceResp)) var data map[string]interface{} error := json.Unmarshal([]byte(resourceResp), &data) if error != nil { log.Fatal(error) } return subscribe(urls)}type Urls struct { Url string Token string}func main() { var urls [2]Urls urls[0] = Urls{ Url: "https://example.com/users/8", Token: "abcdefg", } urls[1] = Urls{ Url: "https://example.com/users/9", Token: "hijklmnop", } subscribe(urls[0]) subscribe(urls[1])}最終目標(biāo)是“訂閱”多個 url 并提取任何更新的數(shù)據(jù)(最終將其添加到隊列中,但一次一步)。之后,重新建立連接?,F(xiàn)在,只有第一個訂閱運(yùn)行。謝謝!
1 回答

長風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個贊
我認(rèn)為您要求的是subscribe并行運(yùn)行這些功能。一種方法是將它們包裝在goroutine中并等待所有g(shù)oroutine完成:
func main() {
...
...
var wg sync.WaitGroup
wg.Add(len(urls))
for _, url := range(urls) {
go func() {
defer wg.Done()
subscribe(url)
}()
}
wg.Wait()
}
- 1 回答
- 0 關(guān)注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消