12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package mhayaDiscovery
- import (
- cfacade "github.com/mhaya/facade"
- clog "github.com/mhaya/logger"
- cprofile "github.com/mhaya/profile"
- )
- const (
- Name = "discovery_component"
- )
- type Component struct {
- cfacade.Component
- cfacade.IDiscovery
- }
- func New() *Component {
- return &Component{}
- }
- func (*Component) Name() string {
- return Name
- }
- func (p *Component) Init() {
- config := cprofile.GetConfig("cluster").GetConfig("discovery")
- if config.LastError() != nil {
- clog.Error("`cluster` property not found in profile file.")
- return
- }
- mode := config.GetString("mode")
- if mode == "" {
- clog.Error("`discovery->mode` property not found in profile file.")
- return
- }
- discovery, found := discoveryMap[mode]
- if discovery == nil || !found {
- clog.Errorf("mode = %s property not found in discovery config.", mode)
- return
- }
- clog.Infof("Select discovery [mode = %s].", mode)
- p.IDiscovery = discovery
- p.IDiscovery.Load(p.App())
- }
- func (p *Component) OnStop() {
- p.IDiscovery.Stop()
- }
|