12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package main
- import (
- "context"
- "flag"
- "os"
- "os/signal"
- "syscall"
- "time"
- "go-common/app/job/main/passport-game-data/conf"
- "go-common/app/job/main/passport-game-data/http"
- "go-common/app/job/main/passport-game-data/service"
- "go-common/library/log"
- "go-common/library/net/trace"
- )
- var (
- mode int
- compareMidListFile string
- diffLogFile string
- diffParseResFile string
- )
- const (
- _modeNormal = 0
- _modeCompareOnly = 1
- _modeParseDiffLog = 2
- _modeInitCloud = 3
- )
- func init() {
- flag.IntVar(&mode, "mode", _modeNormal, "mode for starting this job, 0 for normal, 1 for compare only, 2 for parse diff log")
- flag.StringVar(&compareMidListFile, "compare_mid_list_file", "/tmp/mids.txt", "compare mid list file path")
- flag.StringVar(&diffLogFile, "diff_log_file", "/tmp/diff.txt", "diff log file path")
- flag.StringVar(&diffParseResFile, "diff_parse_res_file", "/tmp/diff_parse_res.txt", "diff parse result file path")
- }
- func main() {
- flag.Parse()
- if err := conf.Init(); err != nil {
- panic(err)
- }
- log.Init(conf.Conf.Xlog)
- defer log.Close()
- trace.Init(conf.Conf.Tracer)
- defer trace.Close()
- var srv *service.Service
- switch mode {
- case _modeCompareOnly:
- s := service.NewCompareOnly(conf.Conf)
- if err := s.CompareFromMidListFile(context.TODO(), compareMidListFile); err != nil {
- log.Error("service.CompareFromMidListFile(%s) error(%v)", compareMidListFile, err)
- }
- case _modeParseDiffLog:
- log.Info("parse diff log from %s", diffLogFile)
- if err := service.ParseDiffLog(diffLogFile, diffParseResFile); err != nil {
- log.Error("service.ParseDiffLog(%s) error(%v)", diffLogFile, err)
- }
- time.Sleep(time.Second * 2)
- return
- case _modeInitCloud:
- s := service.NewInitCloud(conf.Conf)
- s.InitCloud(context.TODO())
- time.Sleep(time.Second * 2)
- case _modeNormal:
- // service init
- srv = service.New(conf.Conf)
- http.Init(conf.Conf, srv)
- // signal handler
- log.Info("passport-game-data-job start")
- }
- c := make(chan os.Signal, 1)
- signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
- for {
- s := <-c
- log.Info("passport-game-data-job get a signal %s", s.String())
- switch s {
- case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
- if srv != nil {
- srv.Close()
- }
- log.Info("passport-game-data-job exit")
- return
- case syscall.SIGHUP:
- // TODO reload
- default:
- return
- }
- }
- }
|