Files
hmq/main.go
2022-06-18 21:49:55 +08:00

38 lines
710 B
Go

package main
import (
"os"
"os/signal"
"github.com/fhmq/hmq/broker"
"github.com/fhmq/hmq/logger"
"go.uber.org/zap"
)
var log = logger.Get()
func main() {
config, err := broker.ConfigureConfig(os.Args[1:])
if err != nil {
log.Fatal("configure broker config error", zap.Error(err))
}
b, err := broker.NewBroker(config)
if err != nil {
log.Fatal("New Broker error: ", zap.Error(err))
}
b.Start()
s := waitForSignal()
log.Info("signal received, broker closed.", zap.Any("signal", 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
}