Simple, thread-safe Go rate-limiter (evacuated from NSA/Microsoft Github... not to be confused with golang-github-jacobsa-ratelimit-dev or golang-github-juju-ratelimit-dev )
anonymous 7da77c02c4 preliminary building debian package | 5 years ago | |
---|---|---|
debian | 5 years ago | |
.travis.yml | 7 years ago | |
Gopkg.lock | 7 years ago | |
Gopkg.toml | 7 years ago | |
LICENSE | 7 years ago | |
Makefile | 7 years ago | |
README.md | 5 years ago | |
ratelimit.go | 8 years ago | |
ratelimit_test.go | 7 years ago |
Simple, thread-safe Go rate-limiter. Inspired by Antti Huima's algorithm on http://stackoverflow.com/a/668327
package main
import (
"notabug.org/themusicgod1/ratelimit"
"log"
)
func main() {
// Create a new rate-limiter, allowing up-to 10 calls
// per second
rl := ratelimit.New(10, time.Second)
for i:=0; i<20; i++ {
if rl.Limit() {
fmt.Println("DOH! Over limit!")
} else {
fmt.Println("OK")
}
}
}
Full documentation is available on GoDoc