github.com/diamondburned/arikawa/v2@v2.1.0/utils/wsutil/throttler.go (about)

     1  package wsutil
     2  
     3  import (
     4  	"time"
     5  
     6  	"golang.org/x/time/rate"
     7  )
     8  
     9  func NewSendLimiter() *rate.Limiter {
    10  	return rate.NewLimiter(rate.Every(time.Minute), 120)
    11  }
    12  
    13  func NewDialLimiter() *rate.Limiter {
    14  	return rate.NewLimiter(rate.Every(5*time.Second), 1)
    15  }
    16  
    17  func NewIdentityLimiter() *rate.Limiter {
    18  	return NewDialLimiter() // same
    19  }
    20  
    21  func NewGlobalIdentityLimiter() *rate.Limiter {
    22  	return rate.NewLimiter(rate.Every(24*time.Hour), 1000)
    23  }