From 9553f46cf449fb9e4c3e513e90e47ec13f618508 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Wed, 28 Oct 2020 10:51:09 +0300 Subject: [PATCH] connect to all stuff on start Signed-off-by: Vasiliy Tolstov --- service.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/service.go b/service.go index 854e1cc2..4723dd6d 100644 --- a/service.go +++ b/service.go @@ -1,6 +1,7 @@ package micro import ( + "fmt" rtime "runtime" "sync" @@ -136,17 +137,47 @@ func (s *service) String() string { } func (s *service) Start() error { + var err error if logger.V(logger.InfoLevel) { logger.Infof("Starting [service] %s", s.Name()) } - var err error for _, fn := range s.opts.BeforeStart { if err = fn(); err != nil { return err } } + if s.opts.Server == nil { + return fmt.Errorf("cant start nil server") + } + + if s.opts.Registry != nil { + if err := s.opts.Registry.Connect(s.opts.Context); err != nil { + return err + } + } + + if s.opts.Broker != nil { + if err := s.opts.Broker.Connect(s.opts.Context); err != nil { + return err + } + } + + /* + if s.opts.Transport != nil { + if err := s.opts.Transport.Connect(s.opts.Context); err != nil { + return err + } + } + */ + + if s.opts.Store != nil { + if err := s.opts.Store.Connect(s.opts.Context); err != nil { + return err + } + } + if err = s.opts.Server.Start(); err != nil { return err }