gobyexample/045-burstable-rate-limiting.go
Mark McGranaghan 354a9d862f reorder
2012-09-21 07:54:20 -07:00

26 lines
395 B
Go

package main
import ("time"; "fmt")
func main() {
tick := time.Tick(time.Millisecond * 200)
throttle := make(chan bool, 10)
go func() {
for {
<- tick
select {
case throttle <- true:
default:
}
}
}()
time.Sleep(time.Millisecond * 1000)
for {
<- throttle
go fmt.Println("acting")
}
}
// == todo
// credit http://code.google.com/p/go-wiki/wiki/RateLimiting