transfer.sh/vendor/github.com/VojtechVitek/ratelimit/examples/throttle/main.go

25 lines
438 B
Go
Raw Normal View History

2017-03-28 17:26:32 +02:00
package main
import (
"net/http"
"time"
"github.com/VojtechVitek/ratelimit"
)
// curl -v http://localhost:3333
func main() {
middleware := ratelimit.Throttle(1)
http.ListenAndServe(":3333", middleware(http.HandlerFunc(Work)))
}
func Work(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("working hard...\n\n"))
if f, ok := w.(http.Flusher); ok {
f.Flush()
}
time.Sleep(10 * time.Second)
w.Write([]byte("done"))
}