diff --git a/core/load/sheddergroup.go b/core/load/sheddergroup.go index 6937ea55..12fcf6d6 100644 --- a/core/load/sheddergroup.go +++ b/core/load/sheddergroup.go @@ -6,11 +6,13 @@ import ( "github.com/tal-tech/go-zero/core/syncx" ) +// A ShedderGroup is a manager to manage key based shedders. type ShedderGroup struct { options []ShedderOption manager *syncx.ResourceManager } +// NewShedderGroup returns a ShedderGroup. func NewShedderGroup(opts ...ShedderOption) *ShedderGroup { return &ShedderGroup{ options: opts, @@ -18,6 +20,7 @@ func NewShedderGroup(opts ...ShedderOption) *ShedderGroup { } } +// GetShedder gets the Shedder for the given key. func (g *ShedderGroup) GetShedder(key string) Shedder { shedder, _ := g.manager.GetResource(key, func() (closer io.Closer, e error) { return nopCloser{ diff --git a/core/load/sheddingstat.go b/core/load/sheddingstat.go index 7755d693..2a12d969 100644 --- a/core/load/sheddingstat.go +++ b/core/load/sheddingstat.go @@ -9,6 +9,7 @@ import ( ) type ( + // A SheddingStat is used to store the statistics for load shedding. SheddingStat struct { name string total int64 @@ -23,6 +24,7 @@ type ( } ) +// NewSheddingStat returns a SheddingStat. func NewSheddingStat(name string) *SheddingStat { st := &SheddingStat{ name: name, @@ -31,14 +33,17 @@ func NewSheddingStat(name string) *SheddingStat { return st } +// IncrementTotal increments the total requests. func (s *SheddingStat) IncrementTotal() { atomic.AddInt64(&s.total, 1) } +// IncrementPass increments the passed requests. func (s *SheddingStat) IncrementPass() { atomic.AddInt64(&s.pass, 1) } +// IncrementDrop increments the dropped requests. func (s *SheddingStat) IncrementDrop() { atomic.AddInt64(&s.drop, 1) }