main.go 1020 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. "os"
  4. "os/signal"
  5. "syscall"
  6. "trial/grpc-odbserver/mnode"
  7. "trial/grpc-odbserver/msn"
  8. "git.wecise.com/wecise/common/matrix/logger"
  9. "git.wecise.com/wecise/common/matrix/util"
  10. z "git.wecise.com/wecise/odbserver/mring/z/m"
  11. )
  12. var _ = z.RunShadowCount(5, 0, 0, -1)
  13. var log = logger.New()
  14. var node = &mnode.MNode{}
  15. var svcmsn = &msn.MessengerService{}
  16. func start() {
  17. node.Init()
  18. node.RegisterService(svcmsn)
  19. node.Start()
  20. }
  21. func run() {
  22. msgr := msn.GetMessenger()
  23. msgr.Subscribe()
  24. msgr.Publish()
  25. }
  26. func stop() {
  27. node.Stop()
  28. node.Destroy()
  29. }
  30. func main() {
  31. defer func() {
  32. e := util.ErrorWithSourceLine(recover())
  33. if e != nil {
  34. log.Error(e)
  35. }
  36. }()
  37. exitChan := make(chan os.Signal)
  38. signal.Notify(exitChan, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGABRT, syscall.SIGTERM)
  39. start()
  40. log.Print(node.Name(), "启动")
  41. //
  42. go run()
  43. //
  44. s := <-exitChan
  45. if log != nil {
  46. log.Print("收到退出信号", s)
  47. }
  48. stop()
  49. log.Print(node.Name(), "停止")
  50. }