我正在嘗試使用“golang.org/x/time/rate”來構建一個函數,該函數會阻塞直到令牌可用。這是使用庫將代碼塊速率限制為每秒 40 個請求的正確方法嗎,桶大小為 2。type Client struct { limiter *rate.Limiter ctx context.Context}func NewClient() *Client { c :=Client{} c.limiter = rate.NewLimiter(40, 2) c.ctx = context.Background() return &c}func (client *Client) RateLimitFunc() { err := client.limiter.Wait(client.ctx) if err != nil { fmt.Printf("rate limit error: %v", err) }}為了限制我調用的代碼塊RateLimitFunc()我不想使用自動收報機,因為我希望速率限制器考慮調用代碼運行的時間長度。
使用“golang.org/x/time/rate”的速率限制函數 40/秒
12345678_0001
2023-06-12 15:17:02