in lambda/core/bandwidthlimiter/throttler.go [21:36]
func NewBucket(capacity int64, initialTokenCount int64, refillNumber int64, refillInterval time.Duration) (*Bucket, error) {
if capacity <= 0 || initialTokenCount < 0 || refillNumber <= 0 || refillInterval <= 0 ||
capacity < initialTokenCount {
errorMsg := fmt.Sprintf("invalid bucket parameters (capacity: %d, initialTokenCount: %d, refillNumber: %d,"+
"refillInterval: %d)", capacity, initialTokenCount, refillInterval, refillInterval)
log.Error(errorMsg)
return nil, errors.New(errorMsg)
}
return &Bucket{
capacity: capacity,
tokenCount: initialTokenCount,
refillNumber: refillNumber,
refillInterval: refillInterval,
mutex: sync.Mutex{},
}, nil
}