main.go 683 Bytes
package main

import (
	"fmt"
	"os"
	"os/signal"
	"pro2d/cmd/httpserver/action"
	"pro2d/cmd/httpserver/service"
	"pro2d/common"
	"pro2d/common/logger"
	"syscall"
)

func main() {
	err := make(chan error)
	stopChan := make(chan os.Signal)
	signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)

	common.GlobalSconf = common.GlobalConf.AccountConf

	web := service.NewAccountServer("v1", fmt.Sprintf(":%d", common.GlobalSconf.Port))
	web.BindHandler(&action.AccountAction{HttpServer: web})
	go func() {
		err <- web.Start()
	}()

	select {
	case e := <-err:
		logger.Error("http server error: %v", e)
	case <-stopChan:
		logger.Debug("http stop")
		web.Stop()
	}
}