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 //服务器当前时间 GetOffsettime() time.Duration //读取开服时间 SetOffsettime(offset time.Duration) //设置开发时间偏移量 } ) 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 SetOffsettime(offset time.Duration) { defsys.SetOffsettime(offset) } func RegisterConfigure(name string, fn interface{}, callback func()) (err error) { return defsys.RegisterConfigure(name, fn, callback) } func GetOffsettime() time.Duration { return defsys.GetOffsettime() } 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() }