Skip to content

zweite/rate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

rate

Rate Limiter

quick start


qps := 100
r := rate.NewRate(qps)
go r.Run()

go func() {
	qpsChan := r.QPS()
	for {
		select {
		case qps := <-qpsChan:
			println("QPS", qps)
		}
	}
}()

wg := sync.WaitGroup{}
count := 0
num := 100000

for i := 0; i < num; i++ {
	time.Sleep(5 * time.Millisecond)
	wg.Add(1)
	go func(j int) {
		defer wg.Done()
		if r.GetToken() {
			count++
		}
	}(i)
}

wg.Wait()
println("count", count)

About

Rate Limiter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages