package rate import ( "fmt" "testing" "time" ) func TestNewBucketWithQuantum(t *testing.T) { // 桶容量为10,每1秒添加10块令牌 bck := NewBucketWithQuantum(1*time.Second, 10, 10) for i := 0; i < 1000; i++ { time.Sleep(90 * time.Millisecond) if bck.TakeAvailable(1) < 1 { fmt.Println("not enough") } else { fmt.Println("get", i) } } }