main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "flag"
  4. "os"
  5. "os/signal"
  6. "syscall"
  7. "time"
  8. "go-common/app/job/main/tv/conf"
  9. "go-common/app/job/main/tv/http"
  10. "go-common/app/job/main/tv/service/pgc"
  11. "go-common/app/job/main/tv/service/ugc"
  12. "go-common/library/log"
  13. "go-common/library/net/trace"
  14. )
  15. var (
  16. pgcsrv *pgc.Service
  17. ugcsrv *ugc.Service
  18. )
  19. func main() {
  20. flag.Parse()
  21. if err := conf.Init(); err != nil {
  22. log.Error("conf.Init() error(%v)", err)
  23. panic(err)
  24. }
  25. // init log
  26. log.Init(conf.Conf.Log)
  27. trace.Init(conf.Conf.Tracer)
  28. defer trace.Close()
  29. defer log.Close()
  30. log.Info("tv-job start")
  31. pgcsrv = pgc.New(conf.Conf)
  32. ugcsrv = ugc.New(conf.Conf)
  33. http.Init(conf.Conf)
  34. signalHandler()
  35. }
  36. func signalHandler() {
  37. var ch = make(chan os.Signal, 1)
  38. signal.Notify(ch, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
  39. for {
  40. si := <-ch
  41. switch si {
  42. case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
  43. log.Info("get a signal %s, stop the consume process", si.String())
  44. pgcsrv.Close()
  45. ugcsrv.Close()
  46. time.Sleep(time.Second)
  47. return
  48. case syscall.SIGHUP:
  49. default:
  50. return
  51. }
  52. }
  53. }