-
Golang 請(qǐng)求限速、排隊(duì)實(shí)現(xiàn)
概要 在調(diào)用第三方 API 的時(shí)候, 基本都有訪問限速的限制條件. 第三方的 API 有多個(gè)的時(shí)候, 就不太好控制訪問速度, 常常會(huì)導(dǎo)致 HTTP 429(Too Many Requests) 然后就會(huì)有一段時(shí)間的禁止訪問. 為了應(yīng)對(duì)這種限速的情況, 通過一個(gè)簡單的請(qǐng)求隊(duì)列來控制訪問的速度, 之后基本沒遇到過 HTTP 429 了. 實(shí)現(xiàn)思路 首先, 每個(gè)請(qǐng)求包裝成一個(gè)?RequestParam?的 struct, 其中包含請(qǐng)求的地址,類型,參數(shù)以及 response 的 channel. 發(fā)送…
-
深入淺出標(biāo)準(zhǔn)庫 text/template 包
go 語言標(biāo)準(zhǔn)庫 text/template 在 web 編程項(xiàng)目中經(jīng)常用到,本文詳細(xì)介紹了這個(gè)包的用法。 官方定義: Package template implements data-driven templates for generating textual output. template 包是數(shù)據(jù)驅(qū)動(dòng)的文本輸出模板,其實(shí)就是在寫好的模板中填充數(shù)據(jù)。 模板 什么是模板? 下面是一個(gè)簡單的模板示例: {{ 和 }} 中間的句號(hào)?.?代表傳入模板的數(shù)據(jù),根據(jù)傳入的數(shù)據(jù)不同渲染不同的內(nèi)容。 .…