我一直在尝试为我的应用程序制作一个速率限制器并遇到了这段代码。读完之后,我仍然无法理解它到底做了什么。我目前的理解:1)调用SetSmallRateLimit和SetLongRateLimit来初始化channel并开始在goroutine中运行处理程序。2)调用requestAndUnmarshal时,checkRateLimiter向队列channel发送信号。我不明白的地方:1)RateLimitHandler休眠持续时间.After(pertime)之后清除队列channel。不确定triggerWatcher和returnChan在做什么。2)checkTimeTrigger