rankservice

package
v0.0.0-...-eba524c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const MaxPickExpireNum = 2
View Source
const PreMapRankSkipLen = 10

Variables

View Source
var RankDataPool = sync.NewPoolEx(make(chan sync.IPoolData, 10240), func() sync.IPoolData {
	var newRankData RankData
	return &newRankData
})

Functions

func ReleaseRankData

func ReleaseRankData(rankData *RankData)

Types

type DefaultRankModule

type DefaultRankModule struct {
	service.Module
}

func (*DefaultRankModule) OnChangeRankData

func (dr *DefaultRankModule) OnChangeRankData(rankSkip IRankSkip, changeData []*RankData)

func (*DefaultRankModule) OnEnterRank

func (dr *DefaultRankModule) OnEnterRank(rankSkip IRankSkip, enterData []*RankData)

func (*DefaultRankModule) OnLeaveRank

func (dr *DefaultRankModule) OnLeaveRank(rankSkip IRankSkip, leaveData []*RankData)

func (*DefaultRankModule) OnStart

func (dr *DefaultRankModule) OnStart(mapRankSkip map[uint64]*RankSkip) error

func (*DefaultRankModule) OnStop

func (dr *DefaultRankModule) OnStop(mapRankSkip map[uint64]*RankSkip)

type ExpireData

type ExpireData struct {
	Index            int
	Key              uint64
	RefreshTimestamp int64
	// contains filtered or unexported fields
}

func (*ExpireData) IsRef

func (ed *ExpireData) IsRef() bool

func (*ExpireData) Ref

func (ed *ExpireData) Ref()

func (*ExpireData) Reset

func (ed *ExpireData) Reset()

func (*ExpireData) UnRef

func (ed *ExpireData) UnRef()

type IRankModule

type IRankModule interface {
	service.IModule

	OnStart(mapRankSkip map[uint64]*RankSkip) error              //服务开启时回调
	OnEnterRank(rankSkip IRankSkip, enterData []*RankData)       //进入排行
	OnLeaveRank(rankSkip IRankSkip, leaveData []*RankData)       //离开排行
	OnChangeRankData(rankSkip IRankSkip, changeData []*RankData) //当排行数据变化时
	OnStop(mapRankSkip map[uint64]*RankSkip)                     //服务结束时回调
}

type IRankSkip

type IRankSkip interface {
	GetRankID() uint64
	GetRankLen() uint64
}

type RankData

type RankData struct {
	*rpc.RankData
	// contains filtered or unexported fields
}

func NewRankData

func NewRankData(isDec bool, data *rpc.RankData) *RankData

func (*RankData) Compare

func (p *RankData) Compare(other skip.Comparator) int

func (*RankData) GetKey

func (p *RankData) GetKey() uint64

func (*RankData) IsRef

func (p *RankData) IsRef() bool

func (*RankData) Ref

func (p *RankData) Ref()

func (*RankData) Reset

func (p *RankData) Reset()

func (*RankData) UnRef

func (p *RankData) UnRef()

type RankDataChangeType

type RankDataChangeType int8
const (
	RankDataNone   RankDataChangeType = 0
	RankDataAdd    RankDataChangeType = 1 //数据插入
	RankDataUpdate RankDataChangeType = 2 //数据更新
	RankDataDelete RankDataChangeType = 3 //数据删除
)

type RankService

type RankService struct {
	service.Service
	// contains filtered or unexported fields
}

func (*RankService) OnInit

func (rs *RankService) OnInit() error

func (*RankService) OnRelease

func (rs *RankService) OnRelease()

func (*RankService) OnStart

func (rs *RankService) OnStart()

func (*RankService) RPC_DeleteRankDataByKey

func (rs *RankService) RPC_DeleteRankDataByKey(delInfo *rpc.DeleteByKey, delResult *rpc.RankResult) error

RPC_DeleteRankDataByKey 按key从排行榜中进行删除

func (*RankService) RPC_FindRankDataByKey

func (rs *RankService) RPC_FindRankDataByKey(findInfo *rpc.FindRankDataByKey, findResult *rpc.RankPosData) error

RPC_FindRankDataByKey 按key查找,返回对应的排行名次信息

func (*RankService) RPC_FindRankDataByRank

func (rs *RankService) RPC_FindRankDataByRank(findInfo *rpc.FindRankDataByRank, findResult *rpc.RankPosData) error

RPC_FindRankDataByRank 按pos查找

func (*RankService) RPC_FindRankDataList

func (rs *RankService) RPC_FindRankDataList(findInfo *rpc.FindRankDataList, findResult *rpc.RankDataList) error

RPC_FindRankDataList 按StartRank查找,从StartRank开始count个排行数据

func (*RankService) RPC_ManualAddRankSkip

func (rs *RankService) RPC_ManualAddRankSkip(addInfo *rpc.AddRankList, addResult *rpc.RankResult) error

RPC_ManualAddRankSkip 提供手动添加排行榜

func (*RankService) RPC_UpsetRank

func (rs *RankService) RPC_UpsetRank(upsetInfo *rpc.UpsetRankData, upsetResult *rpc.RankResult) error

RPC_UpsetRank 更新排行榜

func (*RankService) SetupRankModule

func (rs *RankService) SetupRankModule(rankModule IRankModule)

安装排行模块

type RankSkip

type RankSkip struct {
	// contains filtered or unexported fields
}

func NewRankSkip

func NewRankSkip(isDes bool, level interface{}, maxLen uint64, expireMs time.Duration) *RankSkip

NewRankSkip 创建排行榜

func (*RankSkip) DeleteRankData

func (rs *RankSkip) DeleteRankData(delKeys []uint64) int32

DeleteRankData 删除排行数据

func (*RankSkip) GetRankDataFromToLimit

func (rs *RankSkip) GetRankDataFromToLimit(startPos, count uint64, result *rpc.RankDataList) error

GetRankList 获取排行榜数据,startPos开始的count个数据

func (*RankSkip) GetRankID

func (rs *RankSkip) GetRankID() uint64

GetRankID 获取排行榜Id

func (*RankSkip) GetRankKeyNextToLimit

func (rs *RankSkip) GetRankKeyNextToLimit(findKey, count uint64, result *rpc.RankDataList) error

GetRankKeyPrevToLimit 获取key前count名的数据

func (*RankSkip) GetRankKeyPrevToLimit

func (rs *RankSkip) GetRankKeyPrevToLimit(findKey, count uint64, result *rpc.RankDataList) error

GetRankKeyPrevToLimit 获取key前count名的数据

func (*RankSkip) GetRankLen

func (rs *RankSkip) GetRankLen() uint64

GetRankLen 获取排行榜长度

func (*RankSkip) GetRankNodeData

func (rs *RankSkip) GetRankNodeData(findKey uint64) (*RankData, uint64)

GetRankNodeData 获取,返回排名节点与名次

func (*RankSkip) GetRankNodeDataByRank

func (rs *RankSkip) GetRankNodeDataByRank(rank uint64) (*RankData, uint64)

GetRankNodeDataByPos 获取,返回排名节点与名次

func (*RankSkip) SetupRankModule

func (rs *RankSkip) SetupRankModule(rankModule IRankModule)

func (*RankSkip) UpsetRank

func (rs *RankSkip) UpsetRank(upsetRankData []*rpc.RankData) (addCount int32, modifyCount int32)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL