Files
hmq/main.go
2017-09-08 16:22:27 +08:00

41 lines
693 B
Go

package main
import (
"hmq/broker"
"os"
"os/signal"
"runtime"
log "github.com/cihub/seelog"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
runtime.GC()
config, er := broker.LoadConfig()
if er != nil {
log.Error("Load Config file error: ", er)
return
}
broker.StartDispatcher()
b, err := broker.NewBroker(config)
if err != nil {
log.Error("New Broker error: ", er)
return
}
b.Start()
s := waitForSignal()
log.Infof("signal got: %v ,broker closed.", s)
}
func waitForSignal() os.Signal {
signalChan := make(chan os.Signal, 1)
defer close(signalChan)
signal.Notify(signalChan, os.Kill, os.Interrupt)
s := <-signalChan
signal.Stop(signalChan)
return s
}