Documentation
¶
Overview ¶
Package counter supply counter service
Index ¶
- Constants
- type BaseEntity
- type Counter
- type DBPersist
- type EntityCounter
- type Fields
- type NoPersistRedisCounter
- func (p *NoPersistRedisCounter) Del(counterID string) error
- func (p *NoPersistRedisCounter) DelFields(counterID string, fields ...string) error
- func (p *NoPersistRedisCounter) Get(counterID string) (fields Fields, err error)
- func (p *NoPersistRedisCounter) GetName() string
- func (p *NoPersistRedisCounter) Incr(counterID string, fieldAndDelta Fields) error
- func (p *NoPersistRedisCounter) Init() error
- type Persist
- type PersistRedisCounter
- func (p *PersistRedisCounter) Del(counterID string) (err error)
- func (p *PersistRedisCounter) Get(counterID string) (fields Fields, err error)
- func (p *PersistRedisCounter) GetName() string
- func (p *PersistRedisCounter) Incr(counterID string, fieldAndDelta Fields) error
- func (p *PersistRedisCounter) Init() error
- type RedisCounterSync
- type RedisCounterSyncSchedule
- type Scripts
Constants ¶
const ( LUAFALSE int = 0 LUATRUE int = 1 )
Lua
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseEntity ¶
BaseEntity is the base counter entity
func (*BaseEntity) Fields ¶
func (p *BaseEntity) Fields() (Fields, error)
Fields implements EntityCounter.Fields
func (*BaseEntity) TableName ¶
func (p *BaseEntity) TableName() string
TableName implements EntityInterface.TableName,it must be overrided or it will panic
func (*BaseEntity) ToBaseEntity ¶
func (p *BaseEntity) ToBaseEntity(counterID string, fields Fields) (*BaseEntity, error)
ToBaseEntity convert counterID and fields to BaseEntity
func (*BaseEntity) ZeroFields ¶
func (p *BaseEntity) ZeroFields() Fields
ZeroFields implements EntityCounter.ZeroFields,must be overrided
type Counter ¶
type Counter interface {
// GetName counter name
GetName() string
// Incr increase the counterID with fieldAndDelta
Incr(counterID string, fieldAndDelta Fields) error
// Get the fields of counterID
Get(counterID string) (fields Fields, err error)
// Del delete the counter whose id is `counterID“
Del(counterID string) error
}
Counter service
type DBPersist ¶
type DBPersist struct {
// contains filtered or unexported fields
}
DBPersist implements Persist which persist counter to db
func NewDBPersist ¶
func NewDBPersist(dbService func() orm.ShardDBService, entityType EntityCounter) (*DBPersist, error)
NewDBPersist create DBPersist
type EntityCounter ¶
type EntityCounter interface {
orm.Entity
// Fields convert entity to Fields
Fields() (Fields, error)
// ZeroFields return zero fields,must not nil
ZeroFields() Fields
// Entity convert fields to EntityInterface
Entity(counterID string, fields Fields) (orm.Entity, error)
}
EntityCounter entity counter
type NoPersistRedisCounter ¶
type NoPersistRedisCounter struct {
c.Initable
Name string
// contains filtered or unexported fields
}
NoPersistRedisCounter use redis implements Counter which not be pesisisted
func NewNoPersistRedisCounter ¶
func NewNoPersistRedisCounter(name string, redisClient *cache.RedisClient, cacheParm *cache.ParamConf) (*NoPersistRedisCounter, error)
NewNoPersistRedisCounter create new NewNoPersistRedisCounter
func (*NoPersistRedisCounter) Del ¶
func (p *NoPersistRedisCounter) Del(counterID string) error
Del implements Counter.Del
func (*NoPersistRedisCounter) DelFields ¶
func (p *NoPersistRedisCounter) DelFields(counterID string, fields ...string) error
DelFields delete counter fileds of counterID
func (*NoPersistRedisCounter) Get ¶
func (p *NoPersistRedisCounter) Get(counterID string) (fields Fields, err error)
Get implements Counter.Get
func (*NoPersistRedisCounter) GetName ¶
func (p *NoPersistRedisCounter) GetName() string
GetName implements Counter.GetName
func (*NoPersistRedisCounter) Incr ¶
func (p *NoPersistRedisCounter) Incr(counterID string, fieldAndDelta Fields) error
Incr implements Counter.Incr
func (*NoPersistRedisCounter) Init ¶
func (p *NoPersistRedisCounter) Init() error
Init implements Initable.Init()
type Persist ¶
type Persist interface {
// Load the fields of counterID from persist storage
Load(counterID string) (fields Fields, err error)
// Del delete the counter whose id is `counterID“
Del(counterID string) (deleted bool, err error)
// Store save the value of fields with counterID
Store(counterID string, fields Fields) error
}
Persist counter fields to the persist storage
type PersistRedisCounter ¶
type PersistRedisCounter struct {
c.Initable
Name string
// contains filtered or unexported fields
}
PersistRedisCounter use redis implements Counter which be pesisisted by `Persist“
func NewPersistRedisCounter ¶
func NewPersistRedisCounter(name string, redisClientFunc func() *cache.RedisClient, scripts *Scripts, persist Persist, cacheParam *cache.ParamConf, slotsCount int) *PersistRedisCounter
NewPersistRedisCounter create RedisCounter service
func (*PersistRedisCounter) Del ¶
func (p *PersistRedisCounter) Del(counterID string) (err error)
Del implements Counter.Del
func (*PersistRedisCounter) Get ¶
func (p *PersistRedisCounter) Get(counterID string) (fields Fields, err error)
Get implements Counter.Get
func (*PersistRedisCounter) GetName ¶
func (p *PersistRedisCounter) GetName() string
GetName implements Counter.GetName
func (*PersistRedisCounter) Incr ¶
func (p *PersistRedisCounter) Incr(counterID string, fieldAndDelta Fields) error
Incr implements Counter.Incr
func (*PersistRedisCounter) Init ¶
func (p *PersistRedisCounter) Init() error
Init implements Servcie.Init
type RedisCounterSync ¶
type RedisCounterSync struct {
Name string
// contains filtered or unexported fields
}
RedisCounterSync sync redis counter to db
func NewRedisCounterSync ¶
func NewRedisCounterSync(persistRedisCounter *PersistRedisCounter, slotMaxItems, minSyncVersionChanges, minSyncIntervalSecond, evictIntervalSecond int64) (*RedisCounterSync, error)
NewRedisCounterSync create new RedisCounterSync
func (*RedisCounterSync) ScanAll ¶
func (p *RedisCounterSync) ScanAll() error
ScanAll scan all redis server counter sync set
type RedisCounterSyncSchedule ¶
type RedisCounterSyncSchedule struct {
c.BaseService
// contains filtered or unexported fields
}
RedisCounterSyncSchedule schedul RedisCounterSync task
func NewRedisCounterSyncSchedule ¶
func NewRedisCounterSyncSchedule(name string, redisCounterSync []*RedisCounterSync, scanIntervalSecond int) (*RedisCounterSyncSchedule, error)
NewRedisCounterSyncSchedule create new RedisCounterSyncSchedule
func (*RedisCounterSyncSchedule) Init ¶
func (p *RedisCounterSyncSchedule) Init() error
Init implements Initable.Init
func (*RedisCounterSyncSchedule) Start ¶
func (p *RedisCounterSyncSchedule) Start() bool
Start implements Servcie.Start()
func (*RedisCounterSyncSchedule) Stop ¶
func (p *RedisCounterSyncSchedule) Stop() bool
Stop implements Service.Stop()