第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

多個(gè)Http.Get隨機(jī)掛起

多個(gè)Http.Get隨機(jī)掛起

Go
Helenr 2023-04-17 16:28:24
我正在嘗試學(xué)習(xí) Golang 并進(jìn)行了一個(gè)簡(jiǎn)單的項(xiàng)目來(lái)調(diào)用所有 craigslist 城市并查詢它們以進(jìn)行特定搜索。在下面的代碼中,我刪除了 listingmap 中的所有鏈接,但那里有超過(guò) 400 個(gè)鏈接。所以循環(huán)相當(dāng)大。我認(rèn)為這將是一個(gè)很好的測(cè)試,可以將我所學(xué)的知識(shí)付諸應(yīng)用,但我遇到了一個(gè)奇怪的問(wèn)題。有時(shí)大多數(shù) Http.Get() 都得不到服務(wù)器的響應(yīng),而其他時(shí)候則毫無(wú)問(wèn)題地獲得所有響應(yīng)。所以我開始添加打印件來(lái)顯示有多少錯(cuò)誤我們恢復(fù)了,有多少成功通過(guò)了。此外,在運(yùn)行時(shí)它會(huì)隨機(jī)掛起并且從不響應(yīng)。該程序不會(huì)凍結(jié),但該站點(diǎn)只是坐在那里嘗試加載并且終端沒有顯示任何活動(dòng)。我通過(guò)在恢復(fù)后推遲清理來(lái)確保我的響應(yīng)主體已關(guān)閉,但它似乎仍然不起作用。有沒有什么東西讓任何人跳出來(lái),也許我錯(cuò)過(guò)了?提前謝謝大家!
查看完整描述

2 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

Craigslist 也可能只是限制你的速度。無(wú)論哪種方式,我建議將并發(fā)請(qǐng)求限制在 20 個(gè)左右,這里是對(duì)您的listingAggHandler.

queue := make(chan Listings, 99999)

listing_map := make(map[string]Listing)


request_queue := make(chan string)

for i := 0; i < 20; i++ {

? ? go func() {

? ? ? ? for {

? ? ? ? ? ? key := <- request_queue

? ? ? ? ? ? cityRoutine(queue, key)? ? ? ? ? ? ? ??

? ? ? ? }

? ? }()

}


for key, _ := range locationMap {

? ? wg.Add(1)

? ? request_queue <- key

}


wg.Wait()

close(request_queue)

close(queue)

該應(yīng)用程序應(yīng)該仍然非常快。我也同意對(duì)你的問(wèn)題的其他評(píng)論。也會(huì)盡量避免在全球范圍內(nèi)投入太多。


您還可以通過(guò)僅使用請(qǐng)求池中的等待組來(lái)稍微修飾我的更改,并讓每個(gè) goroutine 自行清理并減少等待組。這將限制一些全球范圍。


查看完整回答
反對(duì) 回復(fù) 2023-04-17
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

像許多人建議的那樣刪除了全局 WaitGroup 并將其作為參數(shù)(指針)傳入以清理代碼。至于之前的報(bào)錯(cuò)問(wèn)題,肯定是像maxm說(shuō)的maxm HTTP request max out了。一旦我在每 20 次搜索之間添加一個(gè)等待,我就沒有看到任何錯(cuò)誤。該程序的運(yùn)行速度比我希望的要慢一些,但出于學(xué)習(xí)目的,這很有幫助。


以下是所需代碼的主要更改。


? ? ? ? counter := 0

? ? for key, _ := range locationMap {

? ? ? ? if(counter >= 20) {

? ? ? ? ? ? wg.Wait()

? ? ? ? ? ? counter = 0

? ? ? ? }

? ? ? ? wg.Add(1)

? ? ? ? frmtSearch := key + "search/sss?format=rss&query=" + strings.Replace(p.SearchRequest, " ", "%20", -1)

? ? ? ? go cityRoutine(queue, frmtSearch, &wg)

? ? ? ? counter++

? ? }


查看完整回答
反對(duì) 回復(fù) 2023-04-17
  • 2 回答
  • 0 關(guān)注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)