This commit is contained in:
crusader 2018-03-27 17:56:39 +09:00
parent df00b0f0e7
commit 657796d456

View File

@ -6,13 +6,16 @@ import (
"net"
"os"
"path/filepath"
"reflect"
"strconv"
"git.loafle.net/commons_go/logging"
"git.loafle.net/commons_go/server"
oocu "git.loafle.net/overflow/overflow_commons_go/util"
)
func NewServerHandler(pidPath string, serverName string, socketHandler SocketHandler) ServerHandler {
func NewServerHandler(pidPath string, serverName string, socketHandler SocketHandler, services []interface{}, servicesToStartAndStop []reflect.Type) ServerHandler {
pidPathABS, err := filepath.Abs(pidPath)
if nil != err {
logging.Logger().Panicf("Container: pid file path[%s] is not valid %v", pidPath, err)
@ -21,6 +24,8 @@ func NewServerHandler(pidPath string, serverName string, socketHandler SocketHan
sh := &ServerHandlers{
pidPath: pidPath,
pidPathABS: pidPathABS,
services: services,
servicesToStartAndStop: servicesToStartAndStop,
}
sh.Name = serverName
@ -34,6 +39,9 @@ type ServerHandlers struct {
pidPath string
pidPathABS string
port int
services []interface{}
servicesToStartAndStop []reflect.Type
}
func (sh *ServerHandlers) Init(serverCTX server.ServerContext) error {
@ -41,6 +49,10 @@ func (sh *ServerHandlers) Init(serverCTX server.ServerContext) error {
return err
}
if err := oocu.ExecuteStarters(sh.services, sh.servicesToStartAndStop, false); nil != err {
return err
}
return nil
}
@ -81,6 +93,9 @@ func (sh *ServerHandlers) OnStop(serverCTX server.ServerContext) {
}
func (sh *ServerHandlers) Destroy(serverCTX server.ServerContext) {
if err := oocu.ExecuteStoppers(sh.services, sh.servicesToStartAndStop, true); nil != err {
logging.Logger().Error(err)
}
sh.ServerHandlers.Destroy(serverCTX)
}