| | |
| | | import ( |
| | | "data_msg_push_server/config" |
| | | "data_msg_push_server/service" |
| | | "flag" |
| | | "fmt" |
| | | |
| | | "time" |
| | | |
| | | "basic.com/valib/logger.git" |
| | | ) |
| | | |
| | | var env = flag.String("config", "config", "read storage info") |
| | | |
| | | func init() { |
| | | config.Init(*env) |
| | | config.Init() |
| | | } |
| | | |
| | | func main() { |
| | | fmt.Println("hello!!!") |
| | | done := make(chan bool) |
| | | // 日志初始化 |
| | | var logFile = config.LogConf.Path + "esSyncClient.log" |
| | | logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge) |
| | | |
| | | go runEvery(done) |
| | | //result,err := service.GetData() |
| | | //if err != nil { |
| | | // fmt.Println(err) |
| | | //} |
| | | //if result != nil{ |
| | | // |
| | | //} |
| | | <-done |
| | | fmt.Println("程序已退出") |
| | | //fmt.Println(res) |
| | | //fmt.Println(err) |
| | | |
| | | logger.Debug("程序已退出") |
| | | } |
| | | |
| | | func runEvery(done chan<- bool){ |
| | | ticker := time.NewTicker(10 * time.Second) |
| | | func runEvery(done chan<- bool) { |
| | | ticker := time.NewTicker(time.Duration(config.Options.Interval) * time.Second) |
| | | defer ticker.Stop() |
| | | |
| | | for{ |
| | | for { |
| | | select { |
| | | case <-ticker.C: |
| | | fmt.Println("开始执行函数。。。") |
| | | logger.Debug("开始执行推送任务") |
| | | doServer() |
| | | fmt.Println("本次执行完毕, 当前所有数据已发送!!!") |
| | | logger.Debug("本次执行完毕, 当前所有数据已发送!!!") |
| | | time.Sleep(10 * time.Second) |
| | | } |
| | | } |
| | | } |
| | | |
| | | func doServer() { |
| | | func doServer() { |
| | | total := 0 |
| | | retryCount := 0 |
| | | for { |
| | | t,err := service.GetTotal() |
| | | t, err := service.GetTotal() |
| | | if err != nil { |
| | | fmt.Println(err) |
| | | logger.Error(err.Error()) |
| | | return |
| | | } |
| | | total = t |
| | | fmt.Println("未发送的数据总量:", total) |
| | | if total == 0 { |
| | | logger.Debugf("未发送的数据总量:%d, 重试次数:%d", total, retryCount) |
| | | if total == 0 || retryCount > 10 { |
| | | break |
| | | } else { |
| | | for { |
| | | connectStatus := service.ConnectControl() |
| | | fmt.Println("connectStatus: ",connectStatus) |
| | | logger.Debug("服务端连接状态connectStatus: ", connectStatus) |
| | | if connectStatus == true { |
| | | url := config.ServUrls.ServerUrl |
| | | url := config.Options.ServerUrl |
| | | result, err1 := service.GetData() |
| | | if err1 != nil { |
| | | fmt.Println(err1) |
| | | logger.Warn("获取es数据失败,", err1.Error()) |
| | | return |
| | | } |
| | | id, errs2 := service.SendData(result, url) |
| | | fmt.Println("data id is: ",id) |
| | | if errs2 == nil{ |
| | | //delStatus := service.DeleteData(id) |
| | | markStatus := service.MarkData(id) |
| | | fmt.Println(markStatus) |
| | | |
| | | id, err := service.SendData(result, url) |
| | | logger.Debug("推送的数据 id: ", result.PicId) |
| | | if err == nil { |
| | | markStatus := service.MarkData(result.PicId) |
| | | logger.Debug("记录推送状态 markStatus: ", markStatus) |
| | | } else { |
| | | logger.Debugf("推送的数据失败 id: %s, err:%s", id, err.Error()) |
| | | time.Sleep(5 * time.Second) |
| | | retryCount += 1 |
| | | } |
| | | break |
| | | } else { |
| | | fmt.Println("5秒后尝试重新连接。。。") |
| | | logger.Debug("服务端连接失败, 5秒后尝试重新连接。。。") |
| | | time.Sleep(5 * time.Second) |
| | | } |
| | | } |