-
Golang 請(qǐng)求限速、排隊(duì)實(shí)現(xiàn)
概要 在調(diào)用第三方 API 的時(shí)候, 基本都有訪問(wèn)限速的限制條件. 第三方的 API 有多個(gè)的時(shí)候, 就不太好控制訪問(wèn)速度, 常常會(huì)導(dǎo)致 HTTP 429(Too Many Requests) 然后就會(huì)有一段時(shí)間的禁止訪問(wèn). 為了應(yīng)對(duì)這種限速的情況, 通過(guò)一個(gè)簡(jiǎn)單的請(qǐng)求隊(duì)列來(lái)控制訪問(wèn)的速度, 之后基本沒(méi)遇到過(guò) HTTP 429 了. 實(shí)現(xiàn)思路 首先, 每個(gè)請(qǐng)求包裝成一個(gè)?RequestParam?的 struct, 其中包含請(qǐng)求的地址,類型,參數(shù)以及 response 的 channel. 發(fā)送…