go_dreamfactory/sys/configure/core.go
2022-11-16 17:07:57 +08:00

76 lines
1.5 KiB
Go

package configure
import "time"
/*
系统 服务配置中心
*/
type (
//配置文件信息
FileInfo struct {
Name string // 文件名
Size int64 // 文件大小
ModTime time.Time // 文件修改时间
}
ISys interface {
ConfigurePath() string
Start() (err error)
Stop() (err error)
Update()
RegisterConfigure(name string, fn interface{}, callback func()) (err error) //注册配置
GetConfigure(name string) (v interface{}, err error) //获取配置
Now() 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)
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 ConfigurePath() string {
return defsys.ConfigurePath()
}
func Start() (err error) {
return defsys.Start()
}
func Stop() (err error) {
return defsys.Stop()
}
func Update() {
defsys.Update()
}
func RegisterConfigure(name string, fn interface{}, callback func()) (err error) {
return defsys.RegisterConfigure(name, fn, callback)
}
func GetConfigure(name string) (v interface{}, err error) {
return defsys.GetConfigure(name)
}
//当前时间
func Now() time.Time {
if defsys == nil {
return time.Now()
}
return defsys.Now()
}