Documentation ¶
Index ¶
- Variables
- type Bucket
- type Cache
- func (c *Cache) Del(key string)
- func (c *Cache) Get(key string) (interface{}, bool)
- func (c *Cache) Set(key string, value interface{})
- func (c *Cache) SetWithExpire(key string, value interface{}, expire time.Duration)
- func (c *Cache) Take(key string, fetch func() (interface{}, error)) (interface{}, error)
- type CacheOption
- type Execute
- type Queue
- type Ring
- type RollingWindow
- type RollingWindowOption
- type SafeMap
- type Set
- func (s *Set) Add(i ...interface{})
- func (s *Set) AddInt(ii ...int)
- func (s *Set) AddInt64(ii ...int64)
- func (s *Set) AddStr(ss ...string)
- func (s *Set) AddUint(ii ...uint)
- func (s *Set) AddUint64(ii ...uint64)
- func (s *Set) Contains(i interface{}) bool
- func (s *Set) Count() int
- func (s *Set) Keys() []interface{}
- func (s *Set) KeysInt() []int
- func (s *Set) KeysInt64() []int64
- func (s *Set) KeysStr() []string
- func (s *Set) KeysUint() []uint
- func (s *Set) KeysUint64() []uint64
- func (s *Set) Remove(i interface{})
- type TimingWheel
- func (tw *TimingWheel) Drain(fn func(key, value interface{})) error
- func (tw *TimingWheel) MoveTimer(key interface{}, delay time.Duration) error
- func (tw *TimingWheel) RemoveTimer(key interface{}) error
- func (tw *TimingWheel) SetTimer(key, value interface{}, delay time.Duration) error
- func (tw *TimingWheel) Stop()
Constants ¶
This section is empty.
Variables ¶
var ( ErrClosed = errors.New("TimingWheel is closed already") ErrArgument = errors.New("incorrect task argument") )
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
A Cache object is an in-memory cache.
func NewCache ¶
func NewCache(expire time.Duration, opts ...CacheOption) (*Cache, error)
NewCache returns a Cache with given expire.
func (*Cache) SetWithExpire ¶
SetWithExpire sets value into c with key and expire with the given value.
type CacheOption ¶
type CacheOption func(cache *Cache)
CacheOption defines the method to customize a Cache.
func WithLimit ¶
func WithLimit(limit int) CacheOption
WithLimit customizes a Cache with items up to limit.
func WithName ¶
func WithName(name string) CacheOption
WithName customizes a Cache with the given name.
type Execute ¶
type Execute func(key, value interface{})
Execute defines the method to execute the task.
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
A Queue is a FIFO queue.
type Ring ¶
type Ring struct {
// contains filtered or unexported fields
}
A Ring can be used as fixed size ring.
type RollingWindow ¶
type RollingWindow struct {
// contains filtered or unexported fields
}
RollingWindow defines a rolling window to calculate the events in buckets with time interval.
func NewRollingWindow ¶
func NewRollingWindow(size int, interval time.Duration, opts ...RollingWindowOption) *RollingWindow
NewRollingWindow returns a RollingWindow that with size buckets and time interval, use opts to customize the RollingWindow.
func (*RollingWindow) Add ¶
func (rw *RollingWindow) Add(v float64)
Add adds value to current bucket.
func (*RollingWindow) Reduce ¶
func (rw *RollingWindow) Reduce(fn func(b *Bucket))
Reduce runs fn on all buckets, ignore current bucket if ignoreCurrent was set.
type RollingWindowOption ¶
type RollingWindowOption func(rollingWindow *RollingWindow)
RollingWindowOption let callers customize the RollingWindow.
func IgnoreCurrentBucket ¶
func IgnoreCurrentBucket() RollingWindowOption
IgnoreCurrentBucket lets the Reduce call ignore current bucket.
type SafeMap ¶
type SafeMap struct {
// contains filtered or unexported fields
}
SafeMap provides a map alternative to avoid memory leak. This implementation is not needed until issue below fixed. https://github.com/golang/go/issues/20135
func (*SafeMap) Del ¶
func (m *SafeMap) Del(key interface{})
Del deletes the value with the given key from m.
func (*SafeMap) Range ¶
Range calls f sequentially for each key and value present in the map. If f returns false, range stops the iteration.
type Set ¶
type Set struct {
// contains filtered or unexported fields
}
Set is not thread-safe, for concurrent use, make sure to use it with synchronization.
func NewSet ¶
func NewSet() *Set
NewSet returns a managed Set, can only put the values with the same type.
func NewUnmanagedSet ¶
func NewUnmanagedSet() *Set
NewUnmanagedSet returns a unmanaged Set, which can put values with different types.
type TimingWheel ¶
type TimingWheel struct {
// contains filtered or unexported fields
}
A TimingWheel is a timing wheel object to schedule tasks.
func NewTimingWheel ¶
NewTimingWheel returns a TimingWheel.
func (*TimingWheel) Drain ¶
func (tw *TimingWheel) Drain(fn func(key, value interface{})) error
Drain drains all items and executes them.
func (*TimingWheel) MoveTimer ¶
func (tw *TimingWheel) MoveTimer(key interface{}, delay time.Duration) error
MoveTimer moves the task with the given key to the given delay.
func (*TimingWheel) RemoveTimer ¶
func (tw *TimingWheel) RemoveTimer(key interface{}) error
RemoveTimer removes the task with the given key.
func (*TimingWheel) SetTimer ¶
func (tw *TimingWheel) SetTimer(key, value interface{}, delay time.Duration) error
SetTimer sets the task value with the given key to the delay.
func (*TimingWheel) Stop ¶
func (tw *TimingWheel) Stop()
Stop stops tw. No more actions after stopping a TimingWheel.