Files
hmq/main.go
2018-01-25 13:11:45 +08:00

58 lines
1.0 KiB
Go

package main
import (
"os"
"os/signal"
"runtime"
"github.com/fhmq/hmq/broker"
log "github.com/cihub/seelog"
)
func init() {
testConfig := `
<seelog type="sync">
<outputs formatid="main">
<console/>
</outputs>
<formats>
<format id="main" format="Time:%Date %Time%tfile:%File%tlevel:%LEVEL%t%Msg%n"/>
</formats>
</seelog>`
logger, err := log.LoggerFromConfigAsBytes([]byte(testConfig))
if err != nil {
panic(err)
}
log.ReplaceLogger(logger)
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
config, er := broker.ConfigureConfig()
if er != nil {
log.Error("configure broker config error: ", er)
return
}
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
}