go_dreamfactory/sys/db/core.go
2023-01-31 10:44:15 +08:00

85 lines
1.7 KiB
Go

package db
import (
"sync"
"time"
)
type (
ISys interface {
//同步区服列表
SyncServiceList() (err error)
//本服数据连接
Local() (conn *DBConn, err error)
//当前是否是跨服
IsCross() bool
//跨服区服id
CrossTag() string
//本服数据连接
Cross() (conn *DBConn, err error)
//跨服列表数据层连接
ServerDBConn(stage string) (conn *DBConn, err error)
///获取区服列表标签
GetServerTags() []string
}
//过期数据
ModelDataExpired struct {
key string //主key
mu sync.RWMutex //安全锁
keys map[string]struct{} //数据集合
expired time.Time //过期时间
}
)
var defsys ISys
func OnInit(config map[string]interface{}, option ...Option) (err error) {
var options *Options
if options, err = newOptions(config, option...); err != nil {
return
}
defsys, err = newSys(options)
// defsys.Local().Redis.GetClient().FlushAll(context.TODO())
return
}
func NewSys(option ...Option) (sys ISys, err error) {
var options *Options
if options, err = newOptionsByOption(option...); err != nil {
return
}
defsys, err = newSys(options)
return
}
//同步区服列表
func SyncServiceList() (err error) {
return defsys.SyncServiceList()
}
func Local() (conn *DBConn, err error) {
return defsys.Local()
}
func IsCross() bool {
return defsys.IsCross()
}
func CrossTag() string {
return defsys.CrossTag()
}
func Cross() (conn *DBConn, err error) {
return defsys.Cross()
}
func ServerDBConn(stage string) (conn *DBConn, err error) {
return defsys.ServerDBConn(stage)
}
///获取区服列表标签
func GetServerTags() []string {
return defsys.GetServerTags()
}