package main import ( "flag" "fmt" "log" "app.yhyue.com/moapp/jybase/common" elastic "app.yhyue.com/moapp/jybase/es" "app.yhyue.com/moapp/jybase/mongodb" "app.yhyue.com/moapp/jybase/mysql" "app.yhyue.com/moapp/jybase/redis" "github.com/robfig/cron" ) var ( cfg = new(Config) Mysql *mysql.Mysql TiDb *mysql.Mysql TiDbData *mysql.Mysql TiDbPower *mysql.Mysql Base *mysql.Mysql Es elastic.Es Mgo *mongodb.MongodbSim MgoLog *mongodb.MongodbSim // configFile = flag.String("c", "./config.yaml", "配置文件") mode = flag.Int("m", 1, "") ) func main() { flag.Parse() common.ReadConfig(&cfg) // _ = config.LoadConfigWithYaml(*configFile, cfg) log.Println("cfg ", cfg) TiDb = &mysql.Mysql{ Address: cfg.TiDb.Host + ":" + fmt.Sprint(cfg.TiDb.Port), UserName: cfg.TiDb.User, PassWord: cfg.TiDb.Password, DBName: cfg.TiDb.Database, MaxOpenConns: cfg.TiDb.PollSize, MaxIdleConns: cfg.TiDb.MaxIdle, } TiDb.Init() TiDbData = &mysql.Mysql{ Address: cfg.TiDbData.Host + ":" + fmt.Sprint(cfg.TiDbData.Port), UserName: cfg.TiDbData.User, PassWord: cfg.TiDbData.Password, DBName: cfg.TiDbData.Database, MaxOpenConns: cfg.TiDbData.PollSize, MaxIdleConns: cfg.TiDbData.MaxIdle, } TiDbData.Init() TiDbPower = &mysql.Mysql{ Address: cfg.TiDbPower.Host + ":" + fmt.Sprint(cfg.TiDbPower.Port), UserName: cfg.TiDbPower.User, PassWord: cfg.TiDbPower.Password, DBName: cfg.TiDbPower.Database, MaxOpenConns: cfg.TiDbPower.PollSize, MaxIdleConns: cfg.TiDbPower.MaxIdle, } TiDbPower.Init() Mysql = &mysql.Mysql{ Address: cfg.Mysql.Host + ":" + fmt.Sprint(cfg.Mysql.Port), UserName: cfg.Mysql.User, PassWord: cfg.Mysql.Password, DBName: cfg.Mysql.Database, MaxOpenConns: cfg.Mysql.PollSize, MaxIdleConns: cfg.Mysql.MaxIdle, } Mysql.Init() Base = &mysql.Mysql{ Address: cfg.BaseService.Host + ":" + fmt.Sprint(cfg.BaseService.Port), UserName: cfg.BaseService.User, PassWord: cfg.BaseService.Password, DBName: cfg.BaseService.Database, MaxOpenConns: cfg.BaseService.PollSize, MaxIdleConns: cfg.BaseService.MaxIdle, } Base.Init() Es = elastic.NewEs(cfg.Es.Version, cfg.Es.Address, cfg.Es.DbSize, cfg.Es.UserName, cfg.Es.Password) redis.InitRedis(cfg.RedisServer) Mgo = mongodb.NewMgo(cfg.Mgo.Address, cfg.Mgo.DbName, cfg.Mgo.DbSize) MgoLog = mongodb.NewMgoWithUser(cfg.MgoLog.Address, cfg.MgoLog.DbName, cfg.MgoLog.User, cfg.MgoLog.Password, cfg.MgoLog.DbSize) InitArea() if *mode == 1 { // 未支付订单 30分钟一次 // orders() a := cron.New() a.AddFunc(cfg.CornExp1, func() { orders() messageSync() }) a.Start() // 新注册用户 5分钟一次 // users() // saleLeads() b := cron.New() b.AddFunc(cfg.CornExp2, func() { users() saleLeads() }) b.Start() // 每天8点30 c := cron.New() c.AddFunc(cfg.CornExp3, func() { users() saleLeads() }) c.Start() // userbase() cc := cron.New() cc.AddFunc(cfg.CornExp1, func() { userbase() }) cc.Start() // 用户标签一天一次 // tagAllSync() d := cron.New() d.AddFunc(cfg.CornExp4, func() { tagAllSync() }) d.Start() // 用户标签增量 5分钟一次 ordersClue() kcSync() tagAddSync() e := cron.New() e.AddFunc(cfg.CornExp5, func() { tagAddSync() ordersClue() kcSync() kcAuto() }) e.Start() //订阅增量 5分钟一次 subscribeAddSync() f := cron.New() f.AddFunc(cfg.CornExp6, func() { subscribeAddSync() }) f.Start() //自动进入任务车 1天一次 // autoTask() // autoTasks() g := cron.New() g.AddFunc(cfg.CornExp7, func() { autoTask() autoTasks() }) g.Start() h := cron.New() h.AddFunc(cfg.CornExp5, func() { autoExitSea() }) h.Start() select {} } else if *mode == 2 { users() } else if *mode == 3 { saleLeads() } else if *mode == 4 { saleLeads() users() } else if *mode == 5 { tagAllSync() } else if *mode == 6 { tagAddSync() e := cron.New() e.AddFunc(cfg.CornExp5, func() { tagAddSync() }) e.Start() select {} } else if *mode == 7 { subscribeAddSync() e := cron.New() e.AddFunc(cfg.CornExp6, func() { subscribeAddSync() }) e.Start() select {} } else if *mode == 8 { subscribeAllSync() } else if *mode == 9 { autoTask() } else if *mode == 10 { getAreaCode("6447753fb4f3c077da9d5336") } else if *mode == 11 { trail() } else if *mode == 12 { userbase() } else if *mode == 13 { eventSync() } else if *mode == 14 { getXlsx() } else if *mode == 15 { getXlsx2() } else if *mode == 16 { uidSync() } else if *mode == 17 { privateClueSync() } else if *mode == 18 { clueInfoSync() } else if *mode == 19 { app_xzcyh_sync() } else if *mode == 20 { kcHistorySync() } else if *mode == 21 { kcHistorySyncs() } else if *mode == 22 { kcVisitSync() } else if *mode == 23 { hlyjSync() } else if *mode == 24 { hlyjSync2() } else if *mode == 25 { hlyjSync3() } }